2014-02-08 93 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類。這是一個高揮發性變量和在源陣列(缺失,重新排序)的任何變化之後將被改變,所以$索引不結合至陣列的元件,而只在當前視圖渲染一些元件位置。