Переключиться с! оператор не работает при загрузке страницы JavaScript

У меня есть 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>

где "тип" - это тип строки таблицы, а "типы" - угловой контроллер.

types.setType(тип):

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

хотя это переключает значения со второго щелчка, оно не меняет значение при первом щелчке. Я реализовал эту функциональность с помощью оператора if-else, но не могу понять, почему это не сработает, поскольку это довольно простая вещь.

this.types [тип] по умолчанию имеет значение false.

Может кто-нибудь объяснить, почему это происходит..

1 ответ

Решение

Меня не удивляет, что это не работает:

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

использование " для внутренних кавычек, чтобы синтаксический анализатор понимал, что вы пытаетесь сделать (или наоборот):

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

Кстати, вам не нужна функция для этого. Просто инициализируйте в вашем контроллере bool:

$scope.toggle = true

И используйте по вашему мнению, как это:

ng-click='toggle = !toggle'
Другие вопросы по тегам