关于AngularJS中的ng-class
在前面Angularjs开发一些经验总结中我们说到在angular开发中angular controller never 包含DOM元素(html/css),在controller需要一个简单的POJO(plain object javascript object),与view完全的隔离(交互angularjs框架的职责。但在某些项目中看见controller涉及DOM的元素最多的是在controller scope上定义某变量,其值为class name,形如: 这种方式完全没错,是angular提供的一种改变class的方式,但是在controller涉及了classname在我看来是乎总是那么诡异,我希望的是controller是一个干净的纯javascript意义的object。 在angular中为我们提供了3种方案处理class: 我们继续其他两种解决方案: functionCtr($scope){
$scope.isActive=true;
}
<divng-class="{true:'active',false:'inactive'}[isActive]">
</div>
其结果是2中组合,isActive表达式为true,则 active,负责inactive。 2对象key/value处理主要针对复杂的class混合,其形如: functionCtr($scope){
}
<divng-class{'selected':isSelected,'car':isCar}"> </div>
当 isSelected = true 则增加selected class, 个人推荐用2,3两种方式,不建议将class放入controller scope之上,scope需要保持纯洁行,scope上的只能是数据和行为。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |