我正在尝试使用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;
}
基本上,if $scope。autoScroll为true,我希望ng-class为icon-autoscroll,如果为false,我希望它为icon-autoscroll-disabled
我现在没有工作,并在控制台中产生这个错误
错误:Lexer错误:在列18-18中意外的下一个字符[?[{(isAutoScroll())) ?]'icon-autoscroll': 'icon-autoscroll-disabled'}]。
我该怎么做呢?
EDIT
解决方案1:(过时)
<button class="btn" ng-click="autoScroll = !autoScroll">
<i ng-class="{'icon-autoscroll': autoScroll, 'icon-autoscroll-disabled': !autoScroll}"></i>
</button>
编辑2
解决方案2:
我希望将解决方案更新为应该使用的解决方案3,该解决方案由Stewie提供。当涉及到三元运算符时,它是最标准的(对我来说最容易阅读)。解决办法是
<button class="btn" ng-click="autoScroll = !autoScroll">
<i ng-class="autoScroll ? 'icon-autoscroll' : 'icon-autoscroll-disabled'"></i>
</button>
翻译:
if (autoScroll == true) ?//使用class 'icon-autoscroll': //否则使用'icon-autoscroll-disabled'