angular的ng-class

Posted 伟希

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了angular的ng-class相关的知识,希望对你有一定的参考价值。

项目内想到要替换class时,第一反应是使用angular最为简单粗暴的class改变方式;

 在angular中为我们提供了3种方案处理class:
        1:scope变量绑定,如上例。(不推荐使用)
        2:字符串数组形式。
        3:对象key/value处理。

1.scope变量绑定


$scope.test =“classname”;
<div class=”{{test}}”></div>

 

     这种方式虽然可以,但是在controller中出现了class总是显得奇怪,在angular的思想里面controller应该保持纯洁的js。

    2.字符串数组形式。

  当isActive=true时,class是active,isActive=false时为空,


 $scope.isActive = true;
<div ng-class="{true: ‘active‘, false: ‘‘}[isActive]"> </div>

    3.对象key/value处理主要针对复杂的class混合。

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


$scope.isSelected=true;
<div ng-class {‘selected‘: isSelected, ‘car‘: isCar}"> </div>

 

 

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

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

以上是关于angular的ng-class的主要内容,如果未能解决你的问题,请参考以下文章

随着模型的变化,Angular ng-class 三元组不会更新我的模板

angular js ng-class 将表达式显示为类而不是处理它

AngularJS:范围值改变,但并不总是适用于 ng-class

选定的表行 angular.js

ng-class细说 by破狼

ng-class,与ng-click