Ag中的ng-class的用法

来源:互联网 发布:域名购买哪家网站靠谱 编辑:程序博客网 时间:2024/05/17 04:00
function ctr($scope){   $scope.test =“classname”;}<div class=”{{test}}”></div>

     这种方式完全没错,是angular提供的一种改变class的方式,但是在controller涉及了classname在我看来是乎总是那么诡异,我希望的是controller是一个干净的纯javascript意义的object。

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

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

复制代码
function Ctr($scope) {     $scope.isActive = true;}<div ng-class="{true: 'active', false: 'inactive'}[isActive]"></div>
复制代码

其结果是2中组合,isActive表达式为true,则 active,负责inactive。

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

复制代码
function Ctr($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上的只能是数据和行为。

0 0