角度重复跟踪

时间:2015-06-02 09:32:59

标签: javascript angularjs angularjs-track-by

我有这个插件:

http://plnkr.co/edit/7X8VMG?p=preview

当我通过点击“未完成”进行过滤我在转发器中收到重复错误

 Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: node in nodes track by node.id, Duplicate key: 1441, Duplicate value: {"name":"1","id":1441,"created_at":...

但是如果您查看代码,只有一个ID为1441的节点。我试图将其他选项跟踪,但没有任何效果。

//更新信息: 由于嵌套结构,跟踪$ index不起作用

如何解决?

非常感谢!

大卫

2 个答案:

答案 0 :(得分:0)

  

跟踪$ index

即使使用嵌套结构,也应该这样做,因为$ index将引用最里面的ngRepeat范围的索引。

这将导致项目按其在数组中的位置而不是其值

进行键控

答案 1 :(得分:0)

setFilterOptions 函数中存在错误,即存在更多具有相同代码的状态,然后它更频繁地将节点推送到结果数组。

修复
if($scope.current_visibility.since === null) {
    $scope.filters.tasks.statuses = angular.copy($scope.active_statusses);
    $scope.filters.tasks.statuses.push($scope.folder_status);
}

感谢您的帮助