【问题标题】:Toggle with ! operator not working on page load JavaScript切换!操作员不处理页面加载 JavaScript
【发布时间】:2015-02-23 03:07:44
【问题描述】:

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

其中“type”是表格行的类型,“types”是角度控制器。

types.setType(type):

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

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

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

有人能解释一下为什么会这样吗..

【问题讨论】:

  • 这样提供代码时很难发现问题。 (介于真实代码和伪代码之间)尝试制作一个问题仍然可以重现的最小示例。

标签: javascript angularjs toggle not-operator


【解决方案1】:

这行不通并不让我感到惊讶:

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

使用" 作为内部引号,以使解析器了解您要执行的操作(或相反):

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

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

$scope.toggle = true

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

ng-click='toggle = !toggle'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-17
    • 2017-10-03
    • 1970-01-01
    • 2021-02-14
    • 2017-11-06
    • 1970-01-01
    相关资源
    最近更新 更多