2013-10-16 104 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

有趣的不知道:)虽然我不认为他改变了,但他会说 –