我有分量和有问题的CSS类设置它。 我想它总有一类“盒子”,再有由指令“类”的说法,一个条件类“迷你”指定的其他类。
从概念上讲我想达到什么是这样的:
<div class="box {{class}}" data-ng-class="{mini: !isMaximized}">
...
</div>
问题是,当我设置类HTML属性,省略了NG-class属性。 如何使在不改变控制我的示例工作? 它甚至有可能,还是应该设置类控制器,而不是(我想避免的)?
我有分量和有问题的CSS类设置它。 我想它总有一类“盒子”,再有由指令“类”的说法,一个条件类“迷你”指定的其他类。
从概念上讲我想达到什么是这样的:
<div class="box {{class}}" data-ng-class="{mini: !isMaximized}">
...
</div>
问题是,当我设置类HTML属性,省略了NG-class属性。 如何使在不改变控制我的示例工作? 它甚至有可能,还是应该设置类控制器,而不是(我想避免的)?
我需要的地方之一是$范围推导和其他人的文字类的多个类。 由于从安德烈提示,以下为我工作。
<h2 class="{{workStream.LatestBuildStatus}}"
ng-class="{'expandedIcon':workStream.isVisible, 'collapsedIcon':!workstream.isvisible}">{{workStream.Name}}</h2>
一个快速的解决办法是定义NG-class属性里面的框类:
<div data-ng-class="{mini: !isMaximized, box: true}"></div>
如果你想包括范围变量为一类,不能使用纳克级:
<div class="{{class}} box {{!isMaximized && 'mini' || ''}}">
角表达不支持三元运算符,但它可以效仿这样的:
条件&&(回答如果真)|| (如果回答错误)
编辑:对角的较新版本看到Nitins答案 ,因为它是最好的一个大气压
对我来说,这个工作(我工作的AngularJS v1.2.14的时刻,所以我想1.2.X +应该支持这个,不知道的更早版本):
<div class="box" data-ng-class="{ {{myScopedObj.classesToAdd}}: true, mini: !isMaximized }"></div>
我换成你的{{class}}
与{{myScopedObj.classesToAdd}}
表明任何范围的变量,甚至有点复杂对象可以采用这种方式。
所以,每DIV元件装箱这种方式将具有“框”类,并且包含的任何类myScopedObj.classesToAdd
(使用纳克重复和阵列中的每个元素时有用需要具有施加不同的类),它会具有“迷你”类,如果!isMaximized
。
另一种方式来做到这一点没有双花括号并包括范围的变量,具有角V1.2 +测试。
<div ng-class="['box',
aClass,
{true:'large': false: 'mini'}[isMaximized]]"></div>
这也是相当不错的,因为变量可以使用不同类型的指标在不增加复杂性使用ternaries。 它也可以删除任何需要的否定;) 这里是一个小提琴链接
您可以使用下面给出简单的表达
ng-class="{'active' : itemCount, 'activemenu' : showCart}"