我正在try 使用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-class为icon-autoscroll
,如果为假,我希望它为icon-autoscroll-disabled
我现在所做的不起作用,在控制台中产生了这个错误
Error: Lexer Error: Unexpected next character at columns 18-18 [?] in expression [{(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>
EDIT 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' :
//否则使用'icon-autoscroll-disabled'