0

我有一个ng-repeat用输入框过滤的。在此列表中,有.active.disabled项目。一切都正确呈现,但是当我用查询过滤它时,活动和禁用的类被搞砸了,因为显示的索引发生了变化。

这是一个显示问题的jsFiddle。您会看到第二行突出显示(active添加了类)。现在尝试在输入框中输入“iphone”。第二行将突出显示,即使它不活动。

我怎样才能解决这个问题并在我的ng-repeat.

[编辑] 但是,正确的标签(由 生成ng-if)即使在过滤后也能正确匹配(再次尝试使用“iPhone”)......

4

2 回答 2

0

在您使用tags_and_devices[$index]的某些地方和您使用的某些地方itemitem指向您正在重复通过的数组中的实际项目,因此,即使在过滤时,您也会得到您期望的项目。我不完全理解你想要你的代码做什么,但我认为你想要的只是使用item.

tags_and_devices[$index]使用中的索引ng-repeat(不是模型中项目的索引)在模型中进行查找。

于 2013-08-20T20:35:52.117 回答
0

这是一个很好的问题。因为每次应用过滤器时,$index都会根据当前过滤的列表进行更改。

下面是如何处理它,将过滤后的列表分配给一个变量,然后 $index 匹配数据。

ng-repeat='item in (filtered_tags_and_devices = (tags_and_devices | filter:{ name: assoc_query }))'

然后将标准更改为

filtered_tags_and_devices[$index].id 

DEMO

于 2013-08-20T20:37:42.737 回答