angular ng-class 有两个 classes,一个来自变量名,一个带有条件
angular ng-class with two classes, one from a variable name and one with condition
我遇到了一个问题,可能是我在 Internet 上找不到的一些语法。
我创建了一个 angular 指令,它接收一个 class 名称作为范围变量。
在模板中,我想添加给定的 classname 和另一个 class 作为条件。
类似的东西:
app.directive('MyDirective', function () {
return {
restrict: 'E',
scope: {
className: '=',
},
template: "<div ng-class="className, 'otherClass':{expression}"></div>"
}
});
谢谢:)
假设 className
是作用域上的 属性:
您可以使用带有对象文字语法本身的数组表达式。
<div ... ng-class="[className, {true : 'otherClass'}[expression]]"
或与class
混合使用
<div ... class="{{className}}" ng-class="{'otherClass': expression}"
change your code like this
app.directive('MyDirective', function () {
return {
restrict: 'E',
scope: {
className: '=',
},
template: "<div ng-class="'className':true, 'otherClass': {expression}"></div>"
}
});
您可以将范围数据与某些条件或表达式一起使用。
<div ng-class="{'{{item.name}}' : item.condition}">
或
<div ng-class="$variableToEvaluate ? '{{item.nameiftrue}}' : '{{item.nameiffalse}}'">
我遇到了一个问题,可能是我在 Internet 上找不到的一些语法。
我创建了一个 angular 指令,它接收一个 class 名称作为范围变量。 在模板中,我想添加给定的 classname 和另一个 class 作为条件。 类似的东西:
app.directive('MyDirective', function () {
return {
restrict: 'E',
scope: {
className: '=',
},
template: "<div ng-class="className, 'otherClass':{expression}"></div>"
}
});
谢谢:)
假设 className
是作用域上的 属性:
您可以使用带有对象文字语法本身的数组表达式。
<div ... ng-class="[className, {true : 'otherClass'}[expression]]"
或与class
<div ... class="{{className}}" ng-class="{'otherClass': expression}"
change your code like this
app.directive('MyDirective', function () {
return {
restrict: 'E',
scope: {
className: '=',
},
template: "<div ng-class="'className':true, 'otherClass': {expression}"></div>"
}
});
您可以将范围数据与某些条件或表达式一起使用。
<div ng-class="{'{{item.name}}' : item.condition}">
或
<div ng-class="$variableToEvaluate ? '{{item.nameiftrue}}' : '{{item.nameiffalse}}'">