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 iframe的相互操作浅析
Oct 14 Javascript
单击按钮显示隐藏子菜单经典案例
Jan 04 Javascript
解析DHTML,JavaScript,DOM,BOM以及WEB标准的描述
Jun 19 Javascript
JQuery页面的表格数据的增加与分页的实现
Dec 10 Javascript
JavaScript与HTML的结合方法详解
Nov 23 Javascript
分步解析JavaScript实现tab选项卡自动切换功能
Jan 25 Javascript
javascript 判断是否是微信浏览器的方法
Oct 09 Javascript
React中上传图片到七牛的示例代码
Oct 10 Javascript
JS数组求和的常用方法实例小结
Jan 07 Javascript
使用layui定义一个模块并使用的例子
Sep 14 Javascript
js实现登录拖拽窗口
Feb 10 Javascript
JS性能优化实现方法及优点进行
Aug 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 EOT定界符的使用详解
2008/09/30 PHP
让Json更懂中文(JSON_UNESCAPED_UNICODE)
2011/10/27 PHP
强烈声明: 不要使用(include/require)_once
2013/06/06 PHP
CI框架学习笔记(二) -入口文件index.php
2014/10/27 PHP
PHP基于GD2函数库实现验证码功能示例
2019/01/27 PHP
javascript parseInt 大改造
2009/09/27 Javascript
js操纵跨frame的三级联动select下拉选项实例介绍
2013/05/19 Javascript
JQuery验证jsp页面属性是否为空(实例代码)
2013/11/08 Javascript
JQuery fileupload插件实现文件上传功能
2016/03/18 Javascript
jQuery 监控键盘一段时间没输入
2016/04/22 Javascript
jquery通过name属性取值的简单实现方法
2016/06/20 Javascript
javascript中Date对象应用之简易日历实现
2016/07/12 Javascript
网站发布后Bootstrap框架引用woff字体无法正常显示的解决方法
2016/11/24 Javascript
学习使用bootstrap的modal和carousel
2016/12/09 Javascript
jQuery插件HighCharts绘制2D半圆环图效果示例【附demo源码下载】
2017/03/09 Javascript
利用node.js写一个爬取知乎妹纸图的小爬虫
2017/05/03 Javascript
JavaScript中使用参数个数实现重载功能
2017/09/01 Javascript
Vue实现左右菜单联动实现代码
2018/08/12 Javascript
学习jQuery中的noConflict()用法
2018/09/28 jQuery
Angular4 Select选择改变事件的方法
2018/10/09 Javascript
vue路由传参页面刷新参数丢失问题解决方案
2019/10/08 Javascript
vue中注册自定义的全局js方法
2019/11/15 Javascript
vue + node如何通过一个Txt文件批量生成MP3并压缩成Zip
2020/06/02 Javascript
详解Vue的组件中data选项为什么必须是函数
2020/08/17 Javascript
python迭代dict的key和value的方法
2018/07/06 Python
python使用Matplotlib画条形图
2020/03/25 Python
Python数据可视化教程之Matplotlib实现各种图表实例
2019/01/13 Python
对Python3之方法的覆盖与super函数详解
2019/06/26 Python
python实现从尾到头打印单链表操作示例
2020/02/22 Python
Java基础面试题
2012/11/02 面试题
新学期家长寄语
2014/01/19 职场文书
管理岗位竞聘演讲稿
2014/08/18 职场文书
毕业论文答辩开场白和答辩技巧
2015/05/27 职场文书
基于nginx实现上游服务器动态自动上下线无需reload的实现方法
2021/03/31 Servers
JavaScript实现简单计时器
2021/06/22 Javascript
深入理解margin塌陷和margin合并的解决方案
2021/06/26 HTML / CSS