【发布时间】:2014-05-26 03:41:06
【问题描述】:
我有一组项目,我正在使用 ng-repeat 和过滤。
每个项目都有一个唯一的 Id,并存储在一个数组中:
[ {id: 387, name: "hello"}, {id: 2878, name: "world"}, ...]
但现在我需要通过它们唯一的 id 而不是数组索引来引用这些对象(以及使用带有过滤器的 ng-repeat)。
所以我尝试使用稀疏数组:
array[387] = {name: "hello"}; array[2878] = {name: "world"}...
但是 ng-repeat 会自欺欺人,因为它看到了“重复”的未定义键。 (我也尝试使用 'track by' 但 ng-repeat 仍然不喜欢它)。
我不能使用带有 ng-repeat 的对象,因为过滤器不起作用。
太好了,我怎样才能既使用 ng-repeat 和过滤器,又能够通过 id 引用项目?我能想到的唯一选择是拥有第二个数据结构来将 id 映射到索引。
感谢您的帮助!
克里斯。
【问题讨论】:
-
你引用这些是为了什么?通常你会将控件放在
ng-repeat的inside 中,然后你会拥有这些调用点击事件并传入重复变量。您是否有一个没有意义的场景? -
您打算如何使用具有唯一 ID 的数组?
标签: arrays angularjs data-structures angularjs-ng-repeat ng-repeat