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

Toggle with ! operator not working on page load JavaScript

本文关键字:加载 JavaScript 工作 运算符 切换      更新时间:2023-09-26

我有一个onClick(使用角度.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>
其中"类型"是

表行的类型,"类型"是角度控制器。

types.setType(type):

 ...
 this.types[type] = ! this.types[type];
 ...

虽然这会从第二次单击开始切换值,但它不会更改第一次单击的值。我使用 if-else 语句实现了该功能,但无法弄清楚为什么这不起作用,因为它是一个非常基本的事情。

this.types[type] 设置为 false 作为默认值。

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

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

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

对内引号使用 " 使解析器理解您要执行的操作(或相反):

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

顺便说一下,你不需要函数来执行此操作。只需在控制器中初始化一个布尔值:

$scope.toggle = true

并在您的视图中像这样使用:

ng-click='toggle = !toggle'