2013-10-16 102 views
0

AngularJs模板標籤我不知道爲什麼模板標籤[[ opt.option ]]沒有在下面的代碼,以評估值有時沒有評估有時

<span ng-repeat="opt in options">
<button ng-click="button = [[ opt.option ]]" ng-class="{ active : button == [[ opt.option ]] } ng-cloak>
<i class="icon-tick visible-in-active" ></i>[[ opt.option ]] </button>
</span>

按鈕正在被輸出的名稱意味着命名按鈕的模板標籤正在工作,但當我點擊任何按鈕時,沒有任何活動e表示ng-clickng-class的模板標記未評估。爲什麼是這樣?

編輯
我使用Django的,所以我不得不重寫{{}}與[[]]由於Django使用這些標籤也{{}}

我要實現THIS.當按鈕被點擊時,它變爲活動狀態,前一個活動狀態變爲非活動狀態。這就是我得到JsFiddle

回答

1

內的NG-點擊和NG-類,你不需要使用數據綁定運營商。你只能說:在角

<button ng-click="button = opt.option" ng-class="{ active : button == opt.option }"> 

而且數據綁定運營商是{{}}不是[[]]。

最後,你有一個錯字,並沒有關閉開啓按鈕標籤(你錯過了最後的「「>」)

更新 - 如指出綁定運營商可以定製,所以這是。實際上不是一個問題

更新 - 這裏是普拉克一個例子:他可能已經覆蓋$ interpolateProvider使用[[]]而不是http://plnkr.co/edit/t4hmRmJCI22bjqMe1Jc4?p=preview

+0

應該指出,這是可定製的。他可以將它從{{}}更改爲[[]]。 –

+0

@JonathanRowny從來不知道!感謝您指出。該功能的任何實際用途? – ksimons

+0

我確定有但我沒有想到的......也許你只是討厭squ brack的括號?有一個如何在這裏做的例子:http://docs.angularjs.org/api/ng.$interpolateProvider –

0

您需要使用{{}}不是[[]]

+1

{{}}它不會永遠如果這WASN工作't done。 –

+0

加入解釋ation會很好。 – wtsang02

+0

有趣的不知道:)雖然我不認爲他改變了,但他會說 –