尝试绑定具有重复项的数组。 首先使用以下内容删除副本。但我得到了这个
Error: error:infdig
Infinite $digest Loop
return myArray.filter(function (elem, pos) {
return myArray.indexOf(elem) == pos;
});
如何删除重复项?
答案 0 :(得分:1)
Array.prototype.filter
每次都会返回一个新数组。如果你使用这个作为一些绑定的一部分,使用常规$ watch(进行身份检查的那些,而不是深度相等的那些),那么$ watch会在每个$ digest上产生一个“新值”,导致无限的消化循环。
相反,您应该只过滤一次,或者如果数据发生变化,请观察数据,并在过滤时应用过滤器。例如:
$scope.$watch('myData', function (value) {
$scope.myFilteredData = myData.filter(...)
})
// bind to myFilteredData