2014-02-08 62 views
0

我是新来AngularJS所以请善待我.. :-P

所以我会NG-重复在这个例子中循环两次:

<ul> 
     <li ng-repeat="b in aMSG"> 
     <p>{{b.name}}</p> 
     <ul> 
      <li ng-repeat="c in b.x"><a ng-click="getM($parent.$index,$index)" href="#">{{c.name}}</a></i> 
     </ul> 
     </li> 
    </ul> 

见小提琴:http://jsfiddle.net/trK98/

但是,当我应用过滤给孩子中搜索文本:

<ul> 
     <li ng-repeat="b in aMSG"> 
     <p>{{b.name}}</p> 
     <input type="text" ng-model="search" placeholder="Search for?"> 
     <ul> 
      <li ng-repeat="c in b.x|filter:search"><a ng-click="getM($parent.$index,$index)" href="#">{{c.name}}</a></i> 
     </ul> 
     </li> 
    </ul> 

$指数丢失,你可以在这里看到:http://jsfiddle.net/zb2kc/

(搜索例如果汁,然后点击它,你会看到$指数= 0)

我在做什么错?

谢谢!

P.S:对不起,我英文不好。

+0

它不会丢失,因为你的过滤阵列只有1项和果汁是第一项。 –

+0

我明白了。那么如何指向未过滤的数组中的索引呢? –

+0

在这种情况下,你需要'$ index'吗? –

回答

2

切勿使用$指数为任何类型的逻辑。它只能用于管理CSS类。这是一个高挥发性变量和在源阵列(缺失,重新排序)的任何变化之后将被改变,所以$索引不结合至阵列的元件,而只在当前视图渲染一些元件位置。