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 相关文章推荐
innerHTML动态添加html代码和脚本兼容多个浏览器
Oct 11 Javascript
零基础搭建Node.js、Express、Ejs、Mongodb服务器及应用开发入门
Dec 20 Javascript
js实现刷新iframe的方法汇总
Apr 27 Javascript
基于Node.js的JavaScript项目构建工具gulp的使用教程
May 20 Javascript
TypeScript入门-基本数据类型
Mar 28 Javascript
利用jQuery实现简单的拖曳效果实例代码
Oct 20 jQuery
微信小程序获取手机号授权用户登录功能
Nov 09 Javascript
关于angularJs清除浏览器缓存的方法
Nov 28 Javascript
Vue2 轮播图slide组件实例代码
May 31 Javascript
JS实现图片切换效果
Nov 17 Javascript
vue-cli基础配置及webpack配置修改的完整步骤
Oct 20 Javascript
JS动态显示倒计时效果
Dec 12 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
mysq GBKl乱码
2006/11/28 PHP
用PHP写的MySQL数据库用户认证系统代码
2007/03/22 PHP
调试一段PHP程序时遇到的三个问题
2012/01/17 PHP
PHP7正式版测试,性能惊艳!
2015/12/08 PHP
使用户点击后退按钮使效三行代码
2007/07/07 Javascript
javascript add event remove event
2008/04/07 Javascript
用JavaScript页面不刷新时全选择,全删除(GridView)
2009/04/14 Javascript
js中设置元素class的三种方法小结
2011/08/28 Javascript
正则表达式搭配js轻松处理json文本方便而老古
2013/02/17 Javascript
得到form下的所有的input的js代码
2013/11/07 Javascript
jQuery获取选中内容及设置元素属性的方法
2014/07/09 Javascript
jquery实现初次打开有动画效果的网页TAB切换代码
2015/09/06 Javascript
javascript 常用验证函数总结
2016/06/28 Javascript
JS实现快速的导航下拉菜单动画效果附源码下载
2016/11/01 Javascript
bootstrap daterangepicker双日历时间段选择控件详解
2017/06/15 Javascript
vue基础知识--axios合并请求和slot
2020/06/04 Javascript
jQuery是用来干什么的 jquery其实就是一个js框架
2021/02/04 jQuery
python常见排序算法基础教程
2017/04/13 Python
使用paramiko远程执行命令、下发文件的实例
2017/10/01 Python
pytorch: tensor类型的构建与相互转换实例
2018/07/26 Python
在Mac上删除自己安装的Python方法
2018/10/29 Python
在Pycharm中项目解释器与环境变量的设置方法
2018/10/29 Python
Linux下Pycharm、Anaconda环境配置及使用踩坑
2018/12/19 Python
python openCV获取人脸部分并存储功能
2019/08/28 Python
Numpy中ndim、shape、dtype、astype的用法详解
2020/06/14 Python
优秀中专生推荐信
2013/11/17 职场文书
仓管员岗位责任制
2014/02/19 职场文书
端午节活动策划方案
2014/03/09 职场文书
制药工程专业职业生涯规划范文
2014/03/10 职场文书
出国留学计划书
2014/04/27 职场文书
奥运会口号
2014/06/13 职场文书
人事局接收函
2015/01/30 职场文书
杜甫草堂导游词
2015/02/03 职场文书
会议室使用管理制度
2015/08/06 职场文书
python 三边测量定位的实现代码
2021/04/22 Python
Python激活Anaconda环境变量的详细步骤
2021/06/08 Python