有角度的ng重复只显示最后一个元素.如果只有一个元素;我什么也不展示

Angular ng-repeat show only last element. If only one element, doesn't show anything

本文关键字:元素 有一个 什么 如果 最后一个 ng 显示      更新时间:2023-09-26

我正在实现一个动态表单。用户可以选择添加一个新表单和删除以前的表单。这是删除按钮的代码

<button type="button" ng-show="$last" class="btn btn-danger">Remove</button>

在这种情况下,如果只有一个表单,则删除按钮将显示在第一个表单上,如果有多个表单,将显示在最后一个表单上。

我的问题是,当只有一个表单时,我如何使删除按钮消失,而当有多个时,删除按钮将只显示到最后一个表单。

此外,我知道我可以使用ng-disable禁用第一个按钮,但我正在寻找一种方法,使删除按钮消失。

您可以像一样使用$first$last

<button type="button" ng-show="$last && !$first" class="btn btn-danger">Remove</button>

var app = angular.module('my-app', [], function() {})
app.controller('AppController', function($scope) {
  $scope.array = [{}];
})
<link href="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/css/bootstrap.css" rel="stylesheet"/>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.js"></script>
<div ng-app="my-app">
  <div ng-controller="AppController">
    <button ng-click="array.push({})">Add</button>
    <form ng-repeat="item in array">
      <h3>Form {{$index}}</h3>
      <button type="button" ng-show="$last && !$first" class="btn btn-danger" ng-click="array.splice(array.indexOf(item), 1)">Remove</button>
    </form>
  </div>
</div>

您应该使用ng-show/ng-hide来显示和隐藏按钮。使用控制器来确定何时显示/隐藏按钮

相关文章: