ng-class
是核心AngularJs的指令。您可以在其中使用“字符串语法”,“数组语法”,“求值表达式”,“三元运算符”以及以下描述的更多选项:
ngClass使用字符串语法
这是使用ngClass的最简单方法。您可以将一个Angular变量添加到ng-class,这就是将用于该元素的类。
<!-- whatever is typed into this input will be used as the class for the div below -->
<input type="text" ng-model="textType">
<!-- the class will be whatever is typed into the input box above -->
<div ng-class="textType">Look! I'm Words!
使用字符串语法的ngClass演示示例
ngClass使用数组语法
这类似于字符串语法方法,但您可以应用多个类。
<!-- both input boxes below will be classes for the div -->
<input type="text" ng-model="styleOne">
<input type="text" ng-model="styleTwo">
<!-- this div will take on both classes from above -->
<div ng-class="[styleOne, styleTwo]">Look! I'm Words!
ngClass使用评估表达式
使用ngClass的一种更高级的方法(您可能会使用最多的一种方法)是对表达式求值。它的工作方式是,如果变量或表达式的计算结果为true
,则可以应用某个类。如果没有,则该类将不会应用。
<!-- input box to toggle a variable to true or false -->
<input type="checkbox" ng-model="awesome"> Are You Awesome?
<input type="checkbox" ng-model="giant"> Are You a Giant?
<!-- add the class 'text-success' if the variable 'awesome' is true -->
<div ng-class="{ 'text-success': awesome, 'text-large': giant }">
使用评估表达式的ngClass示例
ngClass使用值
这类似于评估的表达式方法,只不过您只能够将多个值与唯一的变量进行比较。
<div ng-class="{value1:'class1', value2:'class2'}[condition]"></div>
ngClass使用三元运算符
三元运算符允许我们使用简写形式来指定两个不同的类,如果一个表达式为true,则为一个,否则为false。这是三元运算符的基本语法:
ng-class="$variableToEvaluate ? 'class-if-true' : 'class-if-false'">
评估第一个,最后一个或特定数字
如果您使用的ngRepeat
指令,并要类适用于first
,last
或特定列表中的号码,你可以使用的特殊性能ngRepeat
。这些措施包括$first
,$last
,$even
,$odd
,和其他几个人。这是如何使用它们的示例。
<!-- add a class to the first item -->
<ul>
<li ng-class="{ 'text-success': $first }" ng-repeat="item in items">{{ item.name }}</li>
</ul>
<!-- add a class to the last item -->
<ul>
<li ng-class="{ 'text-danger': $last }" ng-repeat="item in items">{{ item.name }}</li>
</ul>
<!-- add a class to the even items and a different class to the odd items -->
<ul>
<li ng-class="{ 'text-info': $even, 'text-danger': $odd }" ng-repeat="item in items">{{ item.name }}</li>
</ul>