首页 > 技术文章 > ng-class用法

freefish12 2016-08-11 18:20 原文

在angular中为我们提供了3种方案处理class:

1:scope变量绑定。这种方案不推荐,因为scope里最好处理业务逻辑,不去管渲染的事。
2:字符串数组形式。
3:对象key/value处理。

我们继续其他两种解决方案:
1字符串数组形式是针对class简单变化,具有排斥性的变化,true是什么class,false是什么class,其形如;

复制代码
function testCtrl($scope) { 
    $scope.isError = true;
}

<div ng-class="{true: 'error', false: 'info'}[isError]">
</div>
复制代码

其结果是2中组合,isError表达式为true,则 error,否则事info。

2对象key/value处理主要针对复杂的class混合,其形如:

复制代码
function testCtrl($scope) { 

}

<div ng-class={'selected': isSelected, 'car': isCar}">
</div> 
复制代码

 

当 isSelected = true 则增加selected class,
当isCar=true,则增加car class,
所以你结果可能是4种组合。

比较推荐用2,3两种方式,不建议将class放入controller scope之上,scope需要保持纯洁行,scope上的只能是数据和行为。

推荐阅读