切换!运算符不在页面上加载JavaScript

时间:2014-12-25 10:27:28

标签: javascript angularjs toggle not-operator

我有一个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。

有人可以解释为什么会发生这种情况..

1 个答案:

答案 0 :(得分:2)

这并不令我感到惊讶,这不起作用:

ng-click='types.setType('type')

使用"作为内部引号,让解析器了解您尝试做的事情(或者反过来):

ng-click='types.setType("type")'

顺便说一句,您不需要执行此操作的功能。只需在你的控制器中初始化一个bool:

$scope.toggle = true

并在您的视图中使用:

ng-click='toggle = !toggle'