我有一个onClick(使用angular.js ng-click),我必须在点击时切换表格行的颜色。
这是最初的实施。
<tr>
<td ng-class="{'setType': types.isTypeSet('TYPE') == true}" ng-click="types.setType('TYPE')">
<img class="typebox-img" src="">
<div class="typebox">TYPE</div>
</td>
</tr>
其中&#39; type&#39;是表格行的类型和&#39;类型&#39;是角度控制器。
types.setType(类型):
...
this.types[type] = ! this.types[type];
...
虽然这会在第二次单击时切换值,但它不会更改第一次单击时的值。 我使用if-else语句实现了这个功能,但是无法弄清楚为什么它不能工作,因为它是一个非常基本的事情。
this.types [type]默认设置为false。
有人可以解释为什么会发生这种情况..
答案 0 :(得分:2)
这并不令我感到惊讶,这不起作用:
ng-click='types.setType('type')
使用"
作为内部引号,让解析器了解您尝试做的事情(或者反过来):
ng-click='types.setType("type")'
顺便说一句,您不需要执行此操作的功能。只需在你的控制器中初始化一个bool:
$scope.toggle = true
并在您的视图中使用:
ng-click='toggle = !toggle'