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的强大选择器小结
Dec 27 Javascript
js各种验证文本框输入格式(正则表达式)
Oct 22 Javascript
javascript继承之为什么要继承
Nov 10 Javascript
javascript判断是手机还是电脑访问网页的简单实例分享
Jun 03 Javascript
JavaScript运行机制之事件循环(Event Loop)详解
Oct 10 Javascript
js调用百度地图及调用百度地图的搜索功能
Sep 07 Javascript
Bootstrap 网站实例之单页营销网站
Oct 20 Javascript
详解angularjs 学习之 scope作用域
Jan 15 Javascript
layui-laydate时间日历控件使用方法详解
Nov 15 Javascript
vue实现双向绑定和依赖收集遇到的坑
Nov 29 Javascript
微信小程序全局变量改变监听的实现方法
Jul 15 Javascript
Vue.js实现大转盘抽奖总结及实现思路
Oct 09 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
windwos下使用php连接oracle数据库的过程分享
2014/05/26 PHP
php之Smarty模板使用方法示例详解
2014/07/08 PHP
php中动态修改ini配置
2014/10/14 PHP
phpmyadmin提示The mbstring extension is missing的解决方法
2014/12/17 PHP
Symfony2创建页面实例详解
2016/03/18 PHP
SSO单点登录的PHP实现方法(Laravel框架)
2016/03/23 PHP
php array_key_exists() 与 isset() 的区别
2016/10/24 PHP
php 微信公众平台开发模式实现多客服的实例代码
2016/11/07 PHP
一个基于jquery的文本框记数器
2012/09/19 Javascript
自定义右键属性覆盖浏览器默认右键行为实现代码
2013/02/02 Javascript
jQuery学习笔记之 Ajax操作篇(一) - 数据加载
2014/06/23 Javascript
javascript闭包(Closure)用法实例简析
2015/11/30 Javascript
jQuery Validate初步体验(二)
2015/12/12 Javascript
浅谈javascript基础之客户端事件驱动
2016/06/10 Javascript
ES6新特性之函数的扩展实例详解
2017/04/01 Javascript
AngularJS实现动态添加Option的方法
2017/05/17 Javascript
JavaScript数组_动力节点Java学院整理
2017/06/26 Javascript
js自定义弹框插件的封装
2020/08/24 Javascript
详解vue-cli 本地开发mock数据使用方法
2018/05/29 Javascript
在nodejs中创建child process的方法
2021/01/26 NodeJs
[01:11:10]2014 DOTA2华西杯精英邀请赛 5 24 iG VS VG加赛
2014/05/26 DOTA
Python fileinput模块使用介绍
2014/11/30 Python
python判断windows系统是32位还是64位的方法
2015/05/11 Python
解决pycharm 远程调试 上传 helpers 卡住的问题
2019/06/27 Python
Django设置Postgresql的操作
2020/05/14 Python
家得宝官网:The Home Depot(全球最大的家居装饰专业零售商)
2018/12/17 全球购物
加拿大著名的奢侈品购物网站:SSENSE(支持中文)
2020/06/25 全球购物
高三毕业生自我鉴定
2013/12/20 职场文书
广场舞大赛策划方案
2014/05/31 职场文书
电子信息工程专业自荐书
2014/06/24 职场文书
人力资源管理专业自荐信
2014/06/24 职场文书
文员岗位职责
2015/02/04 职场文书
教师节感想
2015/08/11 职场文书
go类型转换及与C的类型转换方式
2021/05/05 Golang
html5表单的required属性使用
2021/07/07 HTML / CSS
《原神》新角色演示“神里绫人:林隐泓洄” 宠妹狂魔
2022/04/03 其他游戏