Javascript 角度复制跟踪

Javascript 角度复制跟踪,javascript,angularjs,angularjs-track-by,Javascript,Angularjs,Angularjs Track By,我有这样的想法: http://plnkr.co/edit/7X8VMG?p=preview 当我点击“未完成”进行过滤时,我在repeater中得到了重复错误 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 va

我有这样的想法:

http://plnkr.co/edit/7X8VMG?p=preview
当我点击“未完成”进行过滤时,我在repeater中得到了重复错误

 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跟踪不起作用

如何修复它

非常感谢

大卫

按$index跟踪

即使使用嵌套结构,也应该做到这一点,因为$index将引用最内层作用域上的索引


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

设置过滤器选项函数中有一个错误,即存在更多具有相同代码的状态,然后更频繁地将节点推送到结果数组

固定的

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

感谢您的帮助

您仍然可以使用track by$index进行筛选吗?不,这是不可能的-你可以在垃圾桶里试试。由于嵌套结构,它将放置更多节点是的,您仍然可以使用track by$index进行筛选。但是你必须记住的一件事是,你必须在trackby表达式之前应用过滤器。如果您向下滚动到该页的末尾,您将看到一个示例我调试了您的代码。您已使用“NodeFilter”查找结果节点。当您单击“未完成”时,它正在添加ID为(1441)的重复对象。需要细化。
ng repeat=“按$id(obj)在收集跟踪中的obj”