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脚本类
Aug 27 Javascript
jquery配合css简单实现返回顶部效果
Sep 30 Javascript
javascript与cookie 的问题详解
Nov 11 Javascript
页面图片浮动左右滑动效果的简单实现案例
Feb 10 Javascript
Javascript将JSON日期格式化
Aug 23 Javascript
Node.js 异步异常的处理与domain模块解析
May 10 Javascript
bootstrap-Treeview实现级联勾选
Nov 23 Javascript
浅谈Vue2.0中v-for迭代语法的变化(key、index)
Mar 06 Javascript
微信小程序之批量上传并压缩图片的实例代码
Jul 05 Javascript
详解vue+webpack+express中间件接口使用
Jul 17 Javascript
解决在layer.open中使用时间控件laydate失败的问题
Sep 11 Javascript
小程序两种滚动公告栏的实现方法
Sep 17 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
实用函数10
2007/11/08 PHP
PHP使用递归算法无限遍历数组示例
2017/01/13 PHP
php 浮点数比较方法详解
2017/05/05 PHP
Javascript调试工具(下载)
2007/01/09 Javascript
JavaScript中的prototype和constructor简明总结
2014/04/05 Javascript
setInterval计时器不准的问题解决方法
2014/05/08 Javascript
Jquery 获取指定标签的对象及属性的设置与移除
2014/05/29 Javascript
textarea不能通过maxlength属性来限制字数的解决方法
2014/09/01 Javascript
Javascript学习笔记之函数篇(五) : 构造函数
2014/11/23 Javascript
JS验证IP,子网掩码,网关和MAC的方法
2015/07/02 Javascript
jQuery实现获取table表格第一列值的方法
2016/03/01 Javascript
使用JavaScript解决网页图片拉伸问题(推荐)
2016/11/25 Javascript
Bootstrap 手风琴菜单的实现代码
2017/01/20 Javascript
JS基于正则截取替换特定字符之间字符串操作示例
2017/02/03 Javascript
JavaScript创建对象的四种常用模式实例分析
2019/01/11 Javascript
怎样使你的 JavaScript 代码简单易读(推荐)
2019/04/16 Javascript
Layui事件监听的实现(表单和数据表格)
2019/10/17 Javascript
vue路由传参的基本实现方式小结【三种方式】
2020/02/05 Javascript
vue中实现拖动调整左右两侧div的宽度的示例代码
2020/07/22 Javascript
Python里隐藏的“禅”
2014/06/16 Python
python3使用GUI统计代码量
2019/09/18 Python
pytorch实现从本地加载 .pth 格式模型
2020/02/14 Python
django admin后管定制-显示字段的实例
2020/03/11 Python
利用canvas实现图片下载功能来实现浏览器兼容问题
2019/05/31 HTML / CSS
澳大利亚最大的护发和护肤品购物网站:RY
2019/12/26 全球购物
几道Web/Ajax的面试题
2016/11/05 面试题
新闻学专业个人求职信写作
2014/02/04 职场文书
集体备课反思
2014/02/12 职场文书
森林防火工作方案
2014/02/14 职场文书
淘宝客服专员岗位职责
2014/04/11 职场文书
职业生涯规划书怎么写?
2014/09/14 职场文书
国家机关领导干部民主生活会对照检查材料思想汇报
2014/09/17 职场文书
党的群众路线对照检查材料(个人)
2014/09/24 职场文书
2014年体育部工作总结
2014/11/13 职场文书
2014年销售内勤工作总结
2014/12/01 职场文书
创业计划书之寿司
2019/07/19 职场文书