我正在尝试使用切换元素的类 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
为true,我希望ng-class是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) ?
// use类'icon-autoscroll' :
//否则使用'icon-autoscroll-disabled'
autoScroll
这里会在每个按钮上生效?(我使用多个按钮进行了测试,并且效果也不错)我的意思是,当我单击每个按钮时,它只会影响该按钮,而不是所有按钮。
angular expressions
每个文档中使用条件语句 => 无控制流语句:您不能在角度表达式中执行以下任何操作:条件语句,循环语句或throw。使用其他函数或指令