angularJs 唯一过滤器 - 未获得唯一数组长度

angularJs unique Filter - not getting unique array length

https://github.com/a8m/angular-filter/

我正在使用上面的 Angularjs-filter 库在 ng-repeat 中使用独特的 属性。

下面是我的代码

<div class="rankblock" ng-repeat="item in sports.Ranks.Rank  |unique:'_position'>
<span> {{sports.Ranks.Rank.length}}</span> //
</div>

在 ng-repeat 中唯一后,我的 Rank 数组长度变为 6,但输出中仍显示 9(原始 Arr 长度)。

你可以参考https://github.com/a8m/angular-filter/blob/master/src/_filter/collection/unique.js这个过滤器返回一个新的对象数组。因此它不会改变您的原始对象。

过滤器在内部returns变成ng-repeat一个新数组。这就是过滤器的思想——过滤但避免改变输入。换句话说:

ng-repeat="item in sports.Ranks.Rank  | unique:'_position'

说 ng-repeat 遍历过滤函数的结果,这是一个没有重复的新数组,当这里

<span> {{sports.Ranks.Rank.length}}</span>

你还是看原文的长度

如果你想显示新的数组长度,你可以这样做,例如尝试以下

{{ (sports.Ranks.Rank | unique:'_position').length }}

(从来没有做过那样的事情,也许这行得通),但这仍然不是一个高效的解决方案。事实上,我要做的是在控制器级别进行重复数据删除。