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 相关文章推荐
js的with语句使用方法
Sep 21 Javascript
jQuery根据用户电脑是mac还是pc加载对应样式的方法
Jun 26 Javascript
jQuery和hwSlider实现内容响应式可触控滑动切换效果附源码下载(二)
Jun 22 Javascript
实现easyui的datagrid导出为excel的示例代码
Nov 10 Javascript
javascript简单进制转换实现方法
Nov 24 Javascript
JS实现预加载视频音频/视频获取截图(返回canvas截图)
Oct 09 Javascript
weebox弹出窗口不居中显示的解决方法
Nov 27 Javascript
全站最详细的Vuex教程
Apr 13 Javascript
vue的toast弹窗组件实例详解
May 14 Javascript
JS中作用域以及变量范围分析
Jul 18 Javascript
JS实现炫酷轮播图
Nov 15 Javascript
交互式可视化js库gojs使用介绍及技巧
Feb 18 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自带的进位制之间的转换函数
2013/06/08 PHP
PHP正则验证Email的方法
2015/06/15 PHP
浅谈Coreseek、Sphinx-for-chinaese、Sphinx+Scws的区别
2016/12/15 PHP
Jquery设置attr的disabled属性控制某行显示或者隐藏
2014/09/25 Javascript
JavaScript中的逻辑判断符&amp;&amp;、||与!介绍
2014/12/31 Javascript
纯css实现窗户玻璃雨滴逼真效果
2015/08/23 Javascript
jquery制作属于自己的select自定义样式
2015/11/23 Javascript
jQuery判断元素是否显示 是否隐藏的简单实现代码
2016/05/19 Javascript
原生JS实现匀速图片轮播动画
2016/10/18 Javascript
AngularJS打开页面隐藏显示表达式用法示例
2016/12/25 Javascript
使用Vue-Router 2实现路由功能实例详解
2017/11/14 Javascript
vue实现移动端悬浮窗效果
2018/12/01 Javascript
vue中typescript装饰器的使用方法超实用教程
2019/06/17 Javascript
详解利用eventemitter2实现Vue组件通信
2019/11/04 Javascript
js blob类型url的视频下载问题的解决
2019/11/29 Javascript
Vue中keep-alive 实现后退不刷新并保持滚动位置
2020/03/17 Javascript
vue 判断元素内容是否超过宽度的方式
2020/07/29 Javascript
python中管道用法入门实例
2015/06/04 Python
Python网络爬虫实例讲解
2016/04/28 Python
Python实现通过文件路径获取文件hash值的方法
2017/04/29 Python
spark: RDD与DataFrame之间的相互转换方法
2018/06/07 Python
对pandas中时间窗函数rolling的使用详解
2018/11/28 Python
Python Datetime模块和Calendar模块用法实例分析
2019/04/15 Python
python 实现PIL模块在图片画线写字
2020/05/16 Python
CSS3实战第一波 让我们尽情的圆角吧
2010/08/27 HTML / CSS
html5配合css3实现带提示文字的输入框(摆脱js)
2013/03/08 HTML / CSS
Helly Hansen工作服美国官方网上商店:为最恶劣的环境
2019/09/04 全球购物
档案管理员岗位职责
2013/12/01 职场文书
实习教师自我鉴定
2013/12/12 职场文书
代办委托书怎样写
2014/04/08 职场文书
《二泉映月》教学反思
2014/04/15 职场文书
夫妻双方自愿离婚协议书
2014/10/24 职场文书
酒店员工辞职信范文
2015/02/28 职场文书
2015年小学辅导员工作总结
2015/05/27 职场文书
MySQL分库分表详情
2021/09/25 MySQL
springmvc直接不经过controller访问WEB-INF中的页面问题
2022/02/24 Java/Android