带有两个类的角度ng-class,一个来自变量名,另一个来自条件

时间:2015-10-30 18:11:31

标签: javascript angularjs angularjs-directive ng-class

我有点遇到问题,可能是我在互联网上找不到的语法。

我创建了一个角度指令,它接收一个类名作为范围变量。 在模板中,我想将给定的类名和另一个类添加为条件。 类似的东西:

app.directive('MyDirective', function () {
    return {
        restrict: 'E',
        scope: {
            className: '=',
        },
        template: "<div ng-class="className, 'otherClass':{expression}"></div>"
    }
});

谢谢:)

3 个答案:

答案 0 :(得分:3)

假设className是范围内的属性:

您可以使用具有对象文字语法的数组表达式。

 <div ... ng-class="[className, {true : 'otherClass'}[expression]]"

或将其与class

混合使用
<div ... class="{{className}}" ng-class="{'otherClass': expression}"   

答案 1 :(得分:0)

change your code like this
    app.directive('MyDirective', function () {
    return {
        restrict: 'E',
        scope: {
            className: '=',
        },
        template: "<div ng-class="'className':true, 'otherClass':    {expression}"></div>"
    }
    });

答案 2 :(得分:0)

您可以使用范围数据使用某些条件或表达式。

<div ng-class="{'{{item.name}}' : item.condition}">

<div ng-class="$variableToEvaluate ? '{{item.nameiftrue}}' : '{{item.nameiffalse}}'">