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

如。

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

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

.


当前回答

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

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

其他回答

使用控制器上的$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>

下面是一个使用OR ||操作符比较多个angular-ui-路由器状态的例子:

<li ng-class="
    {
        warning:
            $state.includes('out.pay.code.wrong')
            || $state.includes('out.pay.failed')
        ,
        active:
            $state.includes('out.pay')
    }
">

它将根据条件是否满足,向li类发出警告和/或激活。

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

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

我用这个:

[ngClass]="[{
    'basic':'mat-basic-button', 
    'raised':'mat-raised-button', 
    'stroked':'mat-stroked-button'
}[ 
    button.style ?? 'raised'
]]"

你的例子适用于条件类(类名将显示expressionDataX是否为真):

<div ng-class=“(类别1:expressionData1,类别2:expressionData2)”></div>

你也可以添加多个类,由元素的用户提供:

<div ng-class=“[class1, class2]”></div>

用法:

<div class=“foo bar” class1=“foo” class2=“bar”></div>