手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >Angular ng-class详解及实例代码
Angular ng-class详解及实例代码
摘要:在前面Angularjs开发一些经验总结中我们说到在angular开发中angularcontrollernever包含DOM元素(html...

在前面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上的只能是数据和行为。

以上就是对Angular ng-class详解,后续继续补充相关资料,谢谢大家对本站的支持!

【Angular ng-class详解及实例代码】相关文章:

js实现异步循环实现代码

Jquery使用css方法改变样式实例

Javascript节点关系实例分析

Js和JQuery获取鼠标指针坐标的实现代码分享

AngularJS中$interval的用法详解

jQuery聚合函数实例

在页面中输出当前客户端时间javascript实例代码

JavaScript 预解析的原理及实现

AngularJS向后端ASP.NET API控制器上传文件

jQuery实现div随意拖动的实例代码(通用代码)

精品推荐
分类导航