如何使用AngularJS从ng-repeat中删除数组中的对象?

be-*_*ied 2 angularjs ng-repeat

我有一个像[{...},{...}]这样的对象的数组,我用ng-repeat输出.然后我有一个删除按钮,其中包含删除它的功能.

是否有一种简单的方法可以在AngularJS中删除它,也许使用$ index?或者我需要在每个对象上指定一个ID作为属性?

Fac*_*ini 15

如果您不应用过滤器来重新排序或过滤阵列,则可以执行以下操作:

<div ng-repeat="item in items" ng-click="delete($index)">{{item}}</div>
Run Code Online (Sandbox Code Playgroud)

和删除功能:

$scope.items = [...];

$scope.delete = function (index) {
    $scope.items.splice(index, 1);
}
Run Code Online (Sandbox Code Playgroud)

另一种没有过滤问题的方法:(仅限IE9 +)

<div ng-repeat="item in items | orderBy: 'id'" ng-click="delete(item)">{{item}}</div>
Run Code Online (Sandbox Code Playgroud)

和删除功能:

$scope.items = [...];

$scope.delete = function (item) {
    $scope.items.splice($scope.items.indexOf(item), 1);
}
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/oymo9g2f/2/