详解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判断IE6/IE7/FF的代码[XMLHttpRequest]
Feb 16 Javascript
关于火狐(firefox)及ie下event获取的两种方法
Dec 27 Javascript
弹出窗口并且此窗口带有半透明的遮罩层效果
Mar 13 Javascript
jquery提示效果实例分析
Nov 25 Javascript
Jquery中CSS选择器用法分析
Feb 10 Javascript
angular directive的简单使用总结
May 24 Javascript
VUE解决微信签名及SPA微信invalid signature问题(完美处理)
Mar 29 Javascript
layer 关闭指定弹出层的例子
Sep 25 Javascript
详解小程序BackgroundAudioManager踩坑之旅
Dec 08 Javascript
基于vue.js实现购物车
Jan 15 Javascript
js实现简单的打印表格
Jan 15 Javascript
JavaScript运行机制实例分析
Apr 11 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
php 保留字列表
2012/10/04 PHP
PHP explode()函数的几个应用和implode()函数有什么区别
2015/11/05 PHP
详解PHP的Yii框架中日志的相关配置及使用
2015/12/08 PHP
不常用但很实用的PHP预定义变量分析
2019/06/25 PHP
动态刷新 dorado树的js代码
2009/06/12 Javascript
jQuery参数列表集合
2011/04/06 Javascript
理解JavaScript表单的基础知识
2016/01/25 Javascript
jQuery过滤特殊字符及JS字符串转为数字
2016/05/26 Javascript
Javascript类型系统之undefined和null浅析
2016/07/13 Javascript
jQuery树形控件zTree使用小结
2016/08/02 Javascript
AngularJS自定义服务与fliter的混合使用
2016/11/24 Javascript
微信小程序实现锚点定位楼层跳跃的实例
2017/05/18 Javascript
nodejs集成sqlite使用示例
2017/06/05 NodeJs
详解angularJS动态生成的页面中ng-click无效解决办法
2017/06/19 Javascript
微信小程序使用navigateTo数据传递的实例
2017/09/26 Javascript
bootstrap实现二级下拉菜单效果
2017/11/23 Javascript
详解element-ui中el-select的默认选择项问题
2019/08/02 Javascript
Python编程实现数学运算求一元二次方程的实根算法示例
2017/04/02 Python
用Python登录好友QQ空间点赞的示例代码
2017/11/04 Python
Python 网络编程之UDP发送接收数据功能示例【基于socket套接字】
2019/10/11 Python
Python识别验证码的实现示例
2020/09/30 Python
Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块
2020/11/01 Python
Jupyter Notebook安装及使用方法解析
2020/11/12 Python
英国最大的在线快递公司之一:ParcelHero
2019/11/04 全球购物
中专毕业个人的自荐信格式
2013/09/21 职场文书
实习单位推荐信范文
2013/11/27 职场文书
初中校园之声广播稿
2014/01/15 职场文书
银行进社区活动总结
2014/07/07 职场文书
放飞梦想演讲稿800字
2014/08/26 职场文书
流动人口婚育证明
2014/10/19 职场文书
2014年仓管员工作总结
2014/11/18 职场文书
培训师岗位职责
2015/02/14 职场文书
2016大学迎新欢迎词
2015/09/29 职场文书
导游词之无锡东林书院
2019/12/11 职场文书
pytorch--之halfTensor的使用详解
2021/05/24 Python
Python中字符串对象语法分享
2022/02/24 Python