删除数组中的项目时,AngularJS ng-repeat没有正确更新

时间:2014-03-04 07:30:05

标签: javascript arrays angularjs angularjs-ng-repeat

我面临的问题是我有一个ng-repeat,当我通过单击一个具有与删除数组中项目相关联的功能的按钮删除项目时,ng-repeat没有正确显示实际数组。

数组看起来像:

['stuff', 'stuff', 'stuff', ....]

当我删除项目时显示ng-repeat的是没有最后位置的数组,尽管我删除了第一个位置。当我执行console.log时,数组看起来正确,第一个位置或x位置被移除。

3 个答案:

答案 0 :(得分:3)

问题是:

track by $index

由于我一直在做的证明中有一些重复的图像。我删除它,它按预期工作。

答案 1 :(得分:2)

我遇到了这个问题,我最终把它缩小到与角度有关的事情没有被告知某些事情发生了变化。要解决此问题,请尝试使用$ apply。所以像这样:

$rootScope.$apply(function() {
  // remove the item from the array 
})

答案 2 :(得分:1)

长答案:https://github.com/angular/angular.js/wiki/Understanding-Scopes

简短回答,将您的数组切换为:

[{label:'stuff'},...]