我们可以有多个表达式来添加多个ng-class吗?

如。

<div ng-class="{class1: expressionData1, class2: expressionData2}"></div>

如果是,谁能举个例子这样做。

.


当前回答

使用控制器上的$scope方法,可以计算要在视图中输出哪些类。如果你有一个复杂的逻辑来计算类名,这是特别方便的,它将减少你视图中的逻辑量通过移动到控制器:

app.controller('myController', function($scope) {

    $scope.className = function() {

        var className = 'initClass';

        if (condition1())
            className += ' class1';

        if (condition2())
            className += ' class2';

        return className;
    };
});

在视图中,简单地说:

<div ng-class="className()"></div>

其他回答

多亏了Scotch.io,我找到了另一种方法

<div ng-repeat="step in steps" class="step-container step" ng-class="[step.status, step.type]" ng-click="onClick(step.type)">

这是我的推荐信。路径

对于三元运算符表示法:

<div ng-class="expression1? 'class1 class2' : 'class3 class4'">

有多种条件

<div ng-class="{'class1' : con1 || can2, 'class2' : con3 && con4}">
Hello World!
</div>

是的,你可以在ng-class中有多个表达式来添加多个类。

例如:

<div ng-class="{class1:Result.length==2,class2:Result.length==3}"> Dummy Data </div>

下面active和activemenu是类,itemCount和ShowCart是表达式/布尔值。

ng-class="{'active' : itemCount, 'activemenu' : showCart}"