我正在使用角度 1.1.5。在我的代码中,我正在读取一个包含对象数组的 json 对象。每个对象都有一个属性,将标签列表表示为以空格分隔的列表。我正在计算自定义过滤器中的出现次数,并使用 ng-repeat 输出结果。没什么复杂的。
但是 1.1.1 和 1.1.5 之间似乎有区别。
我的 ng-repeat 表达式:
(key, value) in (r.items | extractLabels:'labels')
它适用于角度 1.1.1。见http://jsfiddle.net/waxolunist/vQyCn/
它不适用于角度 1.1.5。见http://jsfiddle.net/waxolunist/vQyCn/8/
我收到以下错误:Duplicates in a repeater are not allowed.
但它适用于对代码的以下修改:
(key, value) in (r.items | extractLabels:'labels') track by $id(key)
见http://jsfiddle.net/waxolunist/vQyCn/9/
我阅读了track by
本文档(http://code.angularjs.org/1.1.5/docs/api/ng.directive:ngRepeat)中的表达式并且它有效,但我完全不理解它。
有人可以向我解释一下,我在这里做什么?我做得对吗?为什么会有这种差异?