0

我有一个 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”是角度控制器。

类型.setType(类型):

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

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

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

有人可以解释为什么会这样..

4

1 回答 1

2

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

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

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

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

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

$scope.toggle = true

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

ng-click='toggle = !toggle'
于 2014-12-25T10:32:20.993 回答