详解angularJs中关于ng-class的三种使用方式说明


Posted in Javascript onJune 02, 2017

在开发中我们通常会遇到一种需求:一个元素在不同的状态需要展现不同的样子。

而在这所谓的样子当然就是改变其css的属性,而实现能动态的改变其属性值,必然只能是更换其class属性

这里有三种方法:

第一种:通过数据的双向绑定(不推荐)

第二种:通过对象数组

第三种:通过key/value( 推荐 )

下面简单说下这三种:

第一种:通过数据的双向绑定

实现方式:

function changeClass(){
 $scope.className = "change2";
}

<div class="{{className}}"></div>

网上各种不推荐,说实话,既然angularJS双向数据绑定这么吊,为什么不能通过这个来改变呢!查了下原由:“在controller涉及了classname在我看来是乎总是那么诡异,我希望的是controller是一个干净的纯javascript意义的object”,当然并没有明文固定不能够这么使用的,而且反而我觉得这样非常的方便,让html中元素想怎么变就怎么变!同理中的img元素中的src就不可以通过别的来改变,但是通过这种方式就是可以的!

当然,这种方式也的确给人的感觉怪怪的,个人认为:可以不得已而为之~

第二种:通过字符串数组的形式来改变

实现方式:

function changeClass(){
 $scope.className = true/false;
}
 
<div ng-class="{true:'zhende',false:'jiade'}[className]"></div>

实现很简单,就是当className为真的时候class为zhende,相反则为jiade。

但是有一点不好的只能够让一个元素拥有两种状态,虽然这么说!基本也是满足所需了,我一般都用这个。简单、直观!

第三种:通过key/value的方式

实现方式:

function changeClass(){
 $scope.lala = true;
}
 
<div ng-class="{'selectClass':select,'choiceClass':choice,'haha':lala}"></div>

当lala为true的时候,class则为haha,个人认为这个是比较推荐的,可以弥补第二种方式的点点遗憾~

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js中复制行和删除行的操作实例
Jun 25 Javascript
jQuery中filter()和find()的区别深入了解
Sep 25 Javascript
登陆成功后自动计算秒数执行跳转
Jan 23 Javascript
js、jquery图片动画、动态切换示例代码
Jun 03 Javascript
JavaScript中的迭代器和生成器详解
Oct 29 Javascript
JavaScript内存管理介绍
Mar 13 Javascript
js中substr,substring,indexOf,lastIndexOf,split,replace的用法详解
Nov 09 Javascript
jQuery实现批量判断表单中文本框非空的方法(2种方法)
Dec 09 Javascript
Node.js读取文件内容示例
Mar 07 Javascript
vue-router实现webApp切换页面动画效果代码
May 25 Javascript
AngularJS实现图片上传和预览功能的方法分析
Nov 08 Javascript
Ant Design Vue 添加区分中英文的长度校验功能
Jan 21 Javascript
vue.js删除动态绑定的radio的指定项
Jun 02 #Javascript
vue.js选中动态绑定的radio的指定项
Jun 02 #Javascript
Spring shiro + bootstrap + jquery.validate 实现登录、注册功能
Jun 02 #jQuery
Vue.js中数据绑定的语法教程
Jun 02 #Javascript
SpringMVC+bootstrap table实例详解
Jun 02 #Javascript
BootStrap daterangepicker 双日历控件
Jun 02 #Javascript
ES6中箭头函数的定义与调用方式详解
Jun 02 #Javascript
You might like
PHP5新特性: 更加面向对象化的PHP
2006/11/18 PHP
php学习之数据类型之间的转换代码
2011/05/29 PHP
nginx+php-fpm配置文件的组织结构介绍
2012/11/07 PHP
php自定义错误处理用法实例
2015/03/20 PHP
PHP生成及获取JSON文件的方法
2016/08/23 PHP
学习thinkphp5.0验证类使用方法
2017/11/16 PHP
PHP创建对象的六种方式实例总结
2019/06/27 PHP
Jquery ajaxsubmit上传图片实现代码
2010/11/04 Javascript
根据选择不同的下拉值出现相对应的文本输入框
2013/08/01 Javascript
js语法学习之判断一个对象是否为数组
2014/05/13 Javascript
JQuery 实现在同一页面锚点链接之间的平滑滚动
2014/10/29 Javascript
IE中鼠标经过option触发mouseout的解决方法
2015/01/29 Javascript
基于JS实现横线提示输入验证码随验证码输入消失(js验证码的实现)
2016/10/27 Javascript
nodejs实例解析(输出hello world)
2017/01/03 NodeJs
jQuery.Form上传文件操作
2017/02/05 Javascript
js实现移动端导航点击自动滑动效果
2017/07/18 Javascript
ui-router中使用ocLazyLoad和resolve的具体方法
2017/10/18 Javascript
ES6扩展运算符用法实例分析
2017/10/31 Javascript
vsCode安装使用教程和插件安装方法
2020/08/24 Javascript
vue实现路由切换改变title功能
2019/05/28 Javascript
详解微信小程序动画Animation执行过程
2020/09/23 Javascript
[04:38]完美世界携手游戏风云打造 卡尔工作室饰品系统篇
2013/04/25 DOTA
[07:09]2014DOTA2国际邀请赛-Newbee再次发威成功晋级决赛
2014/07/19 DOTA
浅谈Python爬取网页的编码处理
2016/11/04 Python
dataframe 按条件替换某一列中的值方法
2019/01/29 Python
对Python3使运行暂停的方法详解
2019/02/18 Python
Python 3.8正式发布重要新功能一览
2019/10/17 Python
Windows系统下pycharm中的pip换源
2020/02/23 Python
opencv之颜色过滤只留下图片中的红色区域操作
2020/06/05 Python
pycharm Tab键设置成4个空格的操作
2021/02/26 Python
类和结构的区别
2012/08/15 面试题
农药学硕士毕业生自荐信
2013/09/25 职场文书
霸气队列口号
2014/06/18 职场文书
领导干部贪图享乐整改措施
2014/09/21 职场文书
2014年学前班工作总结
2014/12/08 职场文书
2015年社区卫生工作总结
2015/04/21 职场文书