Я пытаюсь переключить класс элемента с помощью ng-class
<button class="btn">
<i ng-class="{(isAutoScroll()) ? 'icon-autoscroll' : 'icon-autoscroll-disabled'}"></i>
</button>
isAutoScroll():
$scope.isAutoScroll = function()
{
$scope.autoScroll = ($scope.autoScroll) ? false : true;
return $scope.autoScroll;
}
В принципе, если $scope.autoScroll
истинно, я хочу, чтобы ng-класс был icon-autoscroll
, и если его false, я хочу, чтобы он был icon-autoscroll-disabled
То, что у меня сейчас не работает, и создает эту ошибку в консоли
Error: Lexer Error: Unexpected next character at columns 18-18 [?] in expression [{(isAutoScroll()) ? 'icon-autoscroll' : 'icon-autoscroll-disabled'}].
Как правильно это сделать?
ИЗМЕНИТЬ
решение 1: (устаревшее)
<button class="btn" ng-click="autoScroll = !autoScroll">
<i ng-class="{'icon-autoscroll': autoScroll, 'icon-autoscroll-disabled': !autoScroll}"></i>
</button>
РЕДАКТИРОВАТЬ 2
решение 2:
Я хотел обновить решение, так как Solution 3
, предоставленный Stewie, должен быть использован. Это самый стандартный, когда дело касается тройного оператора (и мне легче всего читать). Решение было бы
<button class="btn" ng-click="autoScroll = !autoScroll">
<i ng-class="autoScroll ? 'icon-autoscroll' : 'icon-autoscroll-disabled'"></i>
</button>
переводит на:
if (autoScroll == true) ?
//использовать класс 'icon-autoscroll' :
//else использовать 'icon-autoscroll-disabled'