Angular ng-class详解及实例代码


Posted in Javascript onSeptember 19, 2016

 在前面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详解,后续继续补充相关资料,谢谢大家对本站的支持!

Javascript 相关文章推荐
基于JQuery实现CheckBox全选全不选
Jun 27 Javascript
利用javascript数组长度循环数组内所有元素
Dec 27 Javascript
轻松实现javascript图片轮播特效
Jan 13 Javascript
Node.js开发者必须了解的4个JS要点
Feb 21 Javascript
JS组件系列之Bootstrap table表格组件神器【二、父子表和行列调序】
May 10 Javascript
JS &amp; JQuery 动态添加 select option
Jun 08 Javascript
浅析javaScript中的浅拷贝和深拷贝
Feb 15 Javascript
vue如何获取点击事件源的方法
Aug 10 Javascript
手写简单的jQuery雪花飘落效果实例
Apr 22 jQuery
JS实现集合的交集、补集、差集、去重运算示例【ES5与ES6写法】
Feb 18 Javascript
JS手写一个自定义Promise操作示例
Mar 16 Javascript
JS遍历树层级关系实现原理解析
Aug 31 Javascript
javascript实现的左右无缝滚动效果
Sep 19 #Javascript
javascript实现图片左右滚动效果【可自动滚动,有左右按钮】
Sep 19 #Javascript
BootStrap入门教程(三)之响应式原理
Sep 19 #Javascript
HTML5 实现的一个俄罗斯方块实例代码
Sep 19 #Javascript
javascript this详细介绍
Sep 19 #Javascript
JS遍历ul下的li点击弹出li的索引的实现方法
Sep 19 #Javascript
vuejs在解析时出现闪烁的原因及防止闪烁的方法
Sep 19 #Javascript
You might like
索尼SONY ICF-7600A(W)电路分析
2021/03/01 无线电
php记录日志的实现代码
2011/08/08 PHP
PHP利用DWZ.CN服务生成短网址
2019/08/11 PHP
jQuery.prototype.init选择器构造函数源码思路分析
2013/02/05 Javascript
IE的fireEvent方法概述及应用
2013/02/22 Javascript
利用jquery包将字符串生成二维码图片
2013/09/12 Javascript
浅谈javascript事件取消和阻止冒泡
2015/05/26 Javascript
以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题
2015/11/13 Javascript
JavaScript实现跑马灯抽奖活动实例代码解析与优化(二)
2016/02/16 Javascript
详解vue中组件参数
2018/07/09 Javascript
实例详解ztree在vue项目中使用并且带有搜索功能
2018/08/24 Javascript
微信小程序实现星星评价效果
2018/11/02 Javascript
jQuery 操作 HTML 元素和属性的方法
2018/11/12 jQuery
vue+element获取el-table某行的下标,根据下标操作数组对象方式
2020/08/07 Javascript
vue 解决provide和inject响应的问题
2020/11/12 Javascript
[55:25]2018DOTA2亚洲邀请赛3月29日 小组赛A组 VG VS OG
2018/03/30 DOTA
[01:08:44]NB vs VP 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python 随机生成中文验证码的实例代码
2013/03/20 Python
Python的函数嵌套的使用方法
2014/01/24 Python
用ReactJS和Python的Flask框架编写留言板的代码示例
2015/12/19 Python
python中实现精确的浮点数运算详解
2017/11/02 Python
python中使用PIL制作并验证图片验证码
2018/03/15 Python
对pytorch中x = x.view(x.size(0), -1) 的理解说明
2021/03/03 Python
HTML5中的强制下载属性download使用实例解析
2016/05/12 HTML / CSS
美国最顶级的精品店之一:Hampden Clothing
2016/12/22 全球购物
美国滑雪和滑雪板商店:Buckman
2018/03/03 全球购物
美国正版电视节目和电影在线观看:Hulu
2018/05/24 全球购物
澳大利亚最受欢迎的女士度假服装:Kabana Shop
2020/10/10 全球购物
中间件分为哪几类
2012/03/14 面试题
英文自我鉴定
2013/12/10 职场文书
会计应聘求职信范文
2013/12/17 职场文书
三八红旗手先进事迹材料
2014/05/13 职场文书
地理科学专业自荐信
2014/09/01 职场文书
2016年中学植树节活动总结
2016/03/16 职场文书
php解析非标准json、非规范json的方式实例
2022/05/10 PHP
MySQL存储过程及语法详解
2022/08/05 MySQL