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()
无效。
是否有任何方法可以删除所选索引?
提前致谢...
答案 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在这种情况下非常混乱,因为它是动态的而键不是。