2013-04-03 34 views
4

似乎這是一個非常常見的問題。替換髮生了,但ng-click沒有點擊(或者看起來沒有被調用)。有人能告訴我爲什麼這會失敗嗎?ng-repeat + ng-click沒有按預期工作

<ul> 
    <li ng-repeat="color in colors"> 
     <a ng-click="chooseColor({{$index}})">{{color.name}}</a> 
    </li> 
</ul> 

這裏是小提琴。

它似乎是{{$ index}}。如果我用靜態數字替換它,它就可以工作。

注意:找到this question - 但它沒有幫助。

+3

使用'$ index'更改範圍中的值時的快速注意事項。如果使用'|過濾原始數組filter:sth'方法(基本上如果你在視圖上過濾),那麼視圖上的索引可能會與實際的未過濾數組不同。接受價值本身而不是索引更好。 – 2013-04-03 21:05:43

回答

14

{{}}位用於模板(插值)。這應該爲你工作:

ng-click="chooseColor($index)" 

ng-click指令正在尋找真正的JavaScript代碼一個Angular Expression,而不是文本,它需要進行插值。

+1

注意,ng-click需要[Angular expression](http://docs.angularjs.org/guide/expression)(不是JavaScript代碼)。 – 2013-04-04 02:46:07