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 相关文章推荐
Javascript学习笔记9 prototype封装继承
Jan 11 Javascript
js下将字符串当函数执行的方法
Jul 13 Javascript
jQuery EasyUI API 中文文档 - Spinner微调器使用
Oct 21 Javascript
JS显示表格内指定行html代码的方法
Mar 31 Javascript
使用JQuery实现的分页插件分享
Nov 05 Javascript
Jquery1.9.1源码分析系列(十五)动画处理之外篇
Dec 04 Javascript
Angular懒加载机制刷新后无法回退的快速解决方法
Aug 30 Javascript
Angular 2 ngForm中的ngModel、[ngModel]和[(ngModel)]的写法
Jun 29 Javascript
浅谈Vue的加载顺序探讨
Oct 25 Javascript
Vue中this.$router.push参数获取方法
Feb 27 Javascript
vue项目中全局引入1个.scss文件的问题解决
Aug 01 Javascript
基于vue和bootstrap实现简单留言板功能
May 30 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网站提速三大“软”招
2006/10/09 PHP
PHP实现取得HTTP请求的原文
2014/08/18 PHP
PHP 5.6.11中CURL模块问题的解决方法
2016/08/08 PHP
js Dialog 实践分享
2012/10/22 Javascript
js 一个关于图片onload加载的事
2013/11/10 Javascript
javascript移出节点removeChild()使用介绍
2014/04/03 Javascript
js 获取浏览器版本以此来调整CSS的样式
2014/06/03 Javascript
使用JavaScript实现网页版Pongo设计思路及源代码分享
2014/06/16 Javascript
Node.js Sequelize如何实现数据库的读写分离
2016/10/23 Javascript
canvas学习之API整理笔记(二)
2016/12/29 Javascript
JavaScript中捕获与冒泡详解及实例
2017/02/03 Javascript
纯js模仿windows系统日历
2017/02/04 Javascript
微信小程序 图片绝对定位(背景图片)
2017/04/05 Javascript
基于Vue实现timepicker
2017/04/25 Javascript
基于$.ajax()方法从服务器获取json数据的几种方式总结
2018/01/31 Javascript
Vue 3.x+axios跨域方案的踩坑指南
2019/07/04 Javascript
element-ui点击查看大图的方法示例
2020/12/14 Javascript
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
2021/03/01 Vue.js
介绍Python中内置的itertools模块
2015/04/29 Python
利用python爬取软考试题之ip自动代理
2017/03/28 Python
python3写爬取B站视频弹幕功能
2017/12/22 Python
使用python爬虫获取黄金价格的核心代码
2018/06/13 Python
Python 窗体(tkinter)按钮 位置实例
2019/06/13 Python
Django 在iframe里跳转顶层url的例子
2019/08/21 Python
Python通过4种方式实现进程数据通信
2020/03/12 Python
HTML5单选框、复选框、下拉菜单、文本域的实现代码
2020/12/01 HTML / CSS
香港草莓网土耳其网站:Strawberrynet TR
2017/03/02 全球购物
美国领先的水果篮送货公司和新鲜水果供应商:The Fruit Company
2018/02/13 全球购物
意大利和国际奢侈品牌购物网站:Suitnegozi.com
2021/01/15 全球购物
最新大学生创业计划书写作攻略
2014/04/02 职场文书
作文评语集锦大全
2014/04/23 职场文书
白岩松演讲
2014/05/21 职场文书
教师考核材料
2014/05/21 职场文书
置业顾问岗位职责
2015/02/09 职场文书
护理专业毕业自我鉴定
2019/08/12 职场文书
pytorch分类模型绘制混淆矩阵以及可视化详解
2022/04/07 Python