从JSON对象列表中删除对象

时间:2015-04-19 21:07:53

标签: javascript json angularjs angularjs-ng-repeat

HTML code:

<li ng-repeat="obj in objects">{{obj.name}} <a ng-click="remove($index)">x</a></li> 

JavaScript代码:

$scope.remove = function(index){
    $scope.objects.splice(index, 1);
}

JSON数据:

{
    "0": { "name": "name1" },
    "1": { "name": "name2" }
}

调用remove()后,我得到TypeError: $scope.objects.splice is not a function,此处我知道$scope.objects不是数组,因此splice()无效。

是否有任何方法可以删除所选索引?

提前致谢...

1 个答案:

答案 0 :(得分:4)

由于你使用的是json对象而不是数组,你可以像这样使用ng-repeat

<li ng-repeat="(key,value) in objects">{{value.name}} <a ng-click="remove(key)">x</a></li> 

因此remove方法可以按键删除当前列表元素:

$scope.remove = function(key) {
     delete $scope.objects[key];
}

这里是plunker

$ index在这种情况下非常混乱,因为它是动态的而键不是。