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 相关文章推荐
node.js中的fs.statSync方法使用说明
Dec 16 Javascript
jQuery中hide()方法用法实例
Dec 24 Javascript
JS实现按比例缩放图片的方法(附C#版代码)
Dec 08 Javascript
一篇文章掌握RequireJS常用知识
Jan 26 Javascript
TinyMCE汉化及本地上传图片功能实例详解
May 31 Javascript
js 打开新页面在屏幕中间的实现方法
Nov 02 Javascript
微信小程序与php 实现微信支付的简单实例
Jun 23 Javascript
微信小程序获取手机系统信息的方法【附源码下载】
Dec 07 Javascript
使用vue-cli3新建一个项目并写好基本配置(推荐)
Apr 24 Javascript
JavaScript如何实现图片处理与合成
May 29 Javascript
JS数据类型判断的几种常用方法
Jul 07 Javascript
利用Vue实现简易播放器的完整代码
Dec 30 Vue.js
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
Laravel框架表单验证详解
2014/09/04 PHP
PHP生成压缩文件实例
2015/02/07 PHP
thinkPHP5.1框架中Request类四种调用方式示例
2019/08/03 PHP
jQuery的初始化与对象构建之浅析
2011/04/12 Javascript
plupload+artdialog实现多平台上传文件
2016/07/19 Javascript
js 打开新页面在屏幕中间的实现方法
2016/11/02 Javascript
利用JavaScript在网页实现八数码启发式A*算法动画效果
2017/04/16 Javascript
Jquery-data的三种用法
2017/04/18 jQuery
详解AngularJS 路由 resolve用法
2017/04/24 Javascript
微信小程序实现登录页云层漂浮的动画效果
2017/05/05 Javascript
详解vue-cli中配置sass
2017/06/21 Javascript
详谈ES6中的迭代器(Iterator)和生成器(Generator)
2017/07/31 Javascript
JS中的Replace()传入函数时的用法详解
2017/09/11 Javascript
js数组实现权重概率分配
2017/09/12 Javascript
解决vue项目使用font-awesome,build后路径的问题
2018/09/01 Javascript
vue 之 css module的使用方法
2018/12/04 Javascript
你不知道的Vue技巧之--开发一个可以通过方法调用的组件(推荐)
2019/04/15 Javascript
Vue父组件如何获取子组件中的变量
2019/07/24 Javascript
详解vuejs中执行npm run dev出现页面cannot GET/问题
2020/04/26 Javascript
jQuery+ThinkPHP实现图片上传
2020/07/23 jQuery
vue-drawer-layout实现手势滑出菜单栏
2020/11/19 Vue.js
[03:37]2016完美“圣”典 风云人物:Mikasa专访
2016/12/07 DOTA
python基于socket实现网络广播的方法
2015/04/29 Python
Python开发SQLite3数据库相关操作详解【连接,查询,插入,更新,删除,关闭等】
2017/07/27 Python
python使用MQTT给硬件传输图片的实现方法
2019/05/05 Python
python matplotlib饼状图参数及用法解析
2019/11/04 Python
python连接mongodb集群方法详解
2020/02/13 Python
Python基础类继承重写实现原理解析
2020/04/03 Python
Python监听剪切板实现方法代码实例
2020/11/11 Python
Jupyter Notebook安装及使用方法解析
2020/11/12 Python
浅析HTML5中header标签的用法
2016/06/24 HTML / CSS
详解HTML5常用的语义化标签
2019/09/27 HTML / CSS
官方授权图形T恤和服装:Fifth Sun
2019/06/12 全球购物
机电一体化求职信
2014/03/10 职场文书
退休教师欢送会主持词
2014/03/31 职场文书
学校党员干部承诺书
2015/05/04 职场文书