ng-class
Class NG
2023-09-11 14:15:30 时间
在前面Angularjs开发一些经验总结中我们说到在angular开发中angular controller never 包含DOM元素(html/css),在controller需要一个简单的POJO(plain object javascript object),与view完全的隔离(交互angularjs框架的职责。但在某些项目中看见controller涉及DOM的元素最多的是在controller scope上定义某变量,其值为class name,形如:
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上的只能是数据和行为。
相关文章
- Vue - 动态绑定class
- 反射方式,获取出集合ArrayList类的class文件对象
- [Typescript] Generics in a Class Names Creator
- [Angular 2]ng-class and Encapsulated Component Style2
- [Angular 2] ng-class and Encapsulated Component Styles
- PYTHON--CLASS
- Java字节码(.class文件)格式详解(三)
- [CSS] Reduce Ambiguity in Class Names using a Naming Convention
- DEFAULT keyword in ABAP and Optional Class in Java
- 手动生成function 对应的ABAP class
- how to use object based exception combined with message class in SE91
- 使用javax.tools.JavaCompiler根据字符串内容动态生成新的Java类并编译成.class
- Atitit.prototype-base class-based 基于“类” vs 基于“原型”
- 破解class文件的第一步:深入理解JAVA Class文件
- js 动态添加class封装(es6语法)
- 【Linux 内核】调度器 ⑦ ( 调度器类型 | 停机调度类 stop_sched_class | 限期调度类 dl_sched_class | 实时调度类 | 公平调度类 | 空闲调度类 )
- 【Linux 内核】调度器 ② ( sched_class 调度类结构体源码 | 源码路径 linux-5.6.18kernelschedsched.h )
- RK3399平台开发系列讲解(应用开发篇)1.9、GPIO 编程-操作/sys/class/gpio/目录下文件方式
- python使用技巧(二十一):class()与class(object)的区别以及object的使用