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 相关文章推荐
页面中iframe相互传值传参
Dec 13 Javascript
js调用浏览器打印模块实现点击按钮触发自定义函数
Mar 21 Javascript
js实现时间显示几天前、几小时前或者几分钟前的方法集锦
May 29 Javascript
常常会用到的截取字符串substr()、substring()、slice()方法详解
Dec 16 Javascript
jQuery on()绑定动态元素出现的问题小结
Feb 19 Javascript
浅谈jQuery添加的HTML,JS失效的问题
Oct 05 Javascript
分类解析jQuery选择器
Nov 23 Javascript
JavaScript模拟文件拖选框样式v1.0的实例
Aug 04 Javascript
vue动态路由实现多级嵌套面包屑的思路与方法
Aug 16 Javascript
关于JavaScript中高阶函数的魅力详解
Sep 07 Javascript
Vue实现点击当前元素以外的地方隐藏当前元素(实现思路)
Dec 04 Javascript
如何基于filter实现网站整体变灰功能
Apr 17 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
PHP扩展模块memcached长连接使用方法分析
2014/12/24 PHP
验证token、回复图文\文本、推送消息的实用微信类php代码
2016/06/28 PHP
apache php mysql开发环境安装教程
2016/07/28 PHP
PHP文件上传操作实例详解
2016/09/27 PHP
javascript 常用代码技巧大收集
2009/02/25 Javascript
基于JQuery的日期联动实现代码
2011/02/24 Javascript
JavaScript下通过的XMLHttpRequest发送请求的代码
2011/06/28 Javascript
js 分页全选或反选标识实现代码
2011/08/09 Javascript
js 实现 input type=&quot;file&quot; 文件上传示例代码
2013/08/07 Javascript
教你如何在 Javascript 文件里使用 .Net MVC Razor 语法
2014/07/23 Javascript
JavaScript中的值类型转换介绍
2014/12/31 Javascript
js点击选择文本的方法
2015/02/09 Javascript
全面解析Bootstrap手风琴效果
2020/04/17 Javascript
深入理解jQuery之事件移除
2016/06/02 Javascript
Bootstrap中的表单验证插件bootstrapValidator使用方法整理(推荐)
2016/06/21 Javascript
Node.js文件编码格式的转换的方法
2018/04/27 Javascript
javascript显示动态时间的方法汇总
2018/07/06 Javascript
jquery ajax 请求小技巧实例分析
2019/11/11 jQuery
Vue实现仿iPhone悬浮球的示例代码
2020/03/13 Javascript
[54:08]LGD女子刀塔学院 DOTA2炼金术士教学
2014/01/09 DOTA
Python正则捕获操作示例
2017/08/19 Python
python实现图书馆研习室自动预约功能
2018/04/27 Python
浅谈pandas.cut与pandas.qcut的使用方法及区别
2020/03/03 Python
Mac中PyCharm配置Anaconda环境的方法
2020/03/04 Python
jupyter notebook 写代码自动补全的实现
2020/11/02 Python
KIKO MILANO荷兰网上商店:意大利专业化妆品品牌
2017/05/12 全球购物
小学教师学期末自我评价
2013/09/25 职场文书
大学生收银员求职信分享
2014/01/02 职场文书
消防安全责任书
2014/04/14 职场文书
服务明星事迹材料
2014/12/29 职场文书
网上祭英烈活动总结
2015/02/04 职场文书
考生诚信考试承诺书
2015/04/29 职场文书
学校运动会感想
2015/08/10 职场文书
三年级作文之趣事作文
2019/11/04 职场文书
PC版《死亡搁浅导剪版》现已发售 展开全新的探险
2022/04/03 其他游戏
5个pandas调用函数的方法让数据处理更加灵活自如
2022/04/24 Python