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使用ColorBox弹出图片组浏览层实例演示
Mar 14 Javascript
Json字符串转换为JS对象的高效方法实例
May 01 Javascript
JS打开层/关闭层/移动层动画效果的实例代码
May 11 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
Sep 17 Javascript
分享几种比较简单实用的JavaScript tabel切换
Dec 31 Javascript
基于Bootstrap使用jQuery实现输入框组input-group的添加与删除
May 03 Javascript
自动适应iframe右边的高度
Dec 22 Javascript
VueJs使用Amaze ui调整列表和内容页面
Nov 30 Javascript
轻量级JS Cookie插件js-cookie的使用方法
Mar 22 Javascript
浅谈Vue下使用百度地图的简易方法
Mar 23 Javascript
Vue组件全局注册实现警告框的实例详解
Jun 11 Javascript
如何使用electron-builder及electron-updater给项目配置自动更新
Dec 24 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 文件上传代码(限制jpg文件)
2010/01/05 PHP
php cookie的操作实现代码(登录)
2010/12/29 PHP
php打开远程文件的方法和风险及解决方法
2013/11/12 PHP
PHP实现通过strace定位故障原因的方法
2018/04/29 PHP
javascript实现dom动态创建省市纵向列表菜单的方法
2015/05/14 Javascript
让html元素随浏览器的大小自适应垂直居中的实现方法
2016/10/12 Javascript
javascript设置文本框光标的方法实例小结
2016/11/04 Javascript
jQuery实现拖动剪裁图片作为头像
2016/12/28 Javascript
Vuex模块化实现待办事项的状态管理
2017/03/15 Javascript
用jquery获取select标签中选中的option值及文本的示例
2018/01/25 jQuery
JavaScript中使用import 和require打包后实现原理分析
2018/03/07 Javascript
Node.js利用console输出日志文件的方法示例
2018/04/27 Javascript
vue.js页面加载执行created,mounted的先后顺序说明
2020/11/07 Javascript
解决Python安装后pip不能用的问题
2018/06/12 Python
python开发游戏的前期准备
2019/05/05 Python
python读csv文件时指定行为表头或无表头的方法
2019/06/26 Python
你还在@微信官方?聊聊Python生成你想要的微信头像
2019/09/25 Python
python matplotlib 画dataframe的时间序列图实例
2019/11/20 Python
Pandas时间序列:重采样及频率转换方式
2019/12/26 Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
2020/05/16 Python
python3列表删除大量重复元素remove()方法的问题详解
2021/01/04 Python
python读取excel数据并且画图的实现示例
2021/02/08 Python
MSC邮轮官方网站:加勒比海、地中海和世界各地的假期
2018/08/27 全球购物
如何让Java程序执行效率更高
2014/06/25 面试题
shell的种类有哪些
2015/04/15 面试题
外贸公司实习自我鉴定
2013/09/24 职场文书
社区道德讲堂实施方案
2014/03/21 职场文书
数控专业毕业生求职信
2014/06/12 职场文书
银行自荐信范文
2015/03/25 职场文书
勇敢的心观后感
2015/06/09 职场文书
岗位聘任协议书
2015/09/21 职场文书
自愿离婚协议书范本2016
2016/03/18 职场文书
2016年“6.26”禁毒宣传月系列活动总结
2016/04/05 职场文书
2019最新劳动仲裁申请书!
2019/07/08 职场文书
详解jQuery的核心函数和事件处理
2022/02/18 jQuery
Android studio 简单计算器的编写
2022/05/20 Java/Android