在前面Angularjs开发一些经验总结中说到在angular开发中angular controller never 包含DOM元素(html/css),在controller需要一个简单的POJO(plain object javascript object),与view完全的隔离(交互angularjs框架的职责。
1、但在某些项目中看见controller涉及DOM的元素最多的是在controller scope上定义某变量,其值为class name,形如:
function ctr($scope){ $scope.test =“classname”;}
这种是angular提供的一种改变class的方式,但是在controller涉及了classname。
在angular中为有3种方案处理class:1:scope变量绑定,如上例。(不推荐使用)2:字符串数组形式。3:对象key/value处理。我们继续其他两种解决方案:
2、字符串数组形式是针对class简单变化,true是什么class,false是什么class,其形如;function Ctr($scope) { $scope.isActive = true;}
其结果是2中组合,isActive表达式为true,则 active,负责inactive。
3、对象key/value处理主要针对复杂的class混合,其形如:
function Ctr($scope) { }
isSelected = true 则增加selected class,
isCar=true,则增加car class,所以结果是4种组合。