详解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+plupload直接批量上传图片到又拍云
Dec 01 Javascript
JavaScript中的关联数组问题
Mar 04 Javascript
Javascript中Array用法实例分析
Jun 13 Javascript
基于JavaScript如何制作遮罩层对话框
Jan 26 Javascript
对Js OOP编程 创建对象的一些全面理解
Jul 26 Javascript
微信小程序 九宫格实例代码
Jan 21 Javascript
详解如何解决vue开发请求数据跨域的问题(基于浏览器的配置解决)
Nov 12 Javascript
Vue动画事件详解及过渡动画实例
Feb 09 Javascript
用 js 写一个 js 解释器过程详解
Aug 02 Javascript
javascript实现滚动条效果
Mar 24 Javascript
Jquery滑动门/tab切换实现方法完整示例
Jun 05 jQuery
vue 实现锚点功能操作
Aug 10 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弹出提示框并跳转到新页面即重定向到新页面
2014/01/24 PHP
PHP实现HTML生成PDF文件的方法
2014/11/07 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
thinkphp5框架实现的自定义扩展类操作示例
2019/05/16 PHP
一些常用的JS功能函数(2009-06-04更新)
2009/06/04 Javascript
Prototype PeriodicalExecuter对象 学习
2009/07/19 Javascript
关于js new Date() 出现NaN 的分析
2012/10/23 Javascript
jquery表单验证使用插件formValidator
2012/11/10 Javascript
理解JAVASCRIPT中hasOwnProperty()的作用
2013/06/05 Javascript
Jquery的Tabs内容轮换效果实现代码,几行搞定
2014/02/12 Javascript
Jquery中的$.each获取各种返回类型数据的使用方法
2015/05/03 Javascript
在JavaScript应用中使用RequireJS来实现延迟加载
2015/07/01 Javascript
详解vue渲染从后台获取的json数据
2017/07/06 Javascript
jQuery EasyUI 选项卡面板tabs的使用实例讲解
2017/12/25 jQuery
Angular2.0实现modal对话框的方法示例
2018/02/18 Javascript
VUE 实现滚动监听 导航栏置顶的方法
2018/09/11 Javascript
浅谈JS的原型和继承
2019/05/08 Javascript
TypeScript中使用getElementXXX()的示例代码
2019/09/12 Javascript
JS数组方法reverse()用法实例分析
2020/01/18 Javascript
微信小程序仿通讯录功能
2020/04/09 Javascript
python实现颜色rgb和hex相互转换的函数
2015/03/19 Python
python中子类调用父类函数的方法示例
2017/08/18 Python
django连接mysql配置方法总结(推荐)
2018/08/18 Python
用Python解决x的n次方问题
2019/02/08 Python
python中yield的用法详解——最简单,最清晰的解释
2019/04/04 Python
使用 tf.nn.dynamic_rnn 展开时间维度方式
2020/01/21 Python
Django框架获取form表单数据方式总结
2020/04/22 Python
Python读取Excel数据并生成图表过程解析
2020/06/18 Python
python中doctest库实例用法
2020/12/31 Python
css3图片边框border-image的用法
2017/06/30 HTML / CSS
自荐信结尾
2013/10/27 职场文书
公务员政审个人鉴定
2014/02/25 职场文书
《蒙娜丽莎之约》教学反思
2014/02/27 职场文书
工作失职检讨书
2015/01/26 职场文书
MySQL 全文索引使用指南
2021/05/25 MySQL
使用Redis实现实时排行榜功能
2021/07/02 Redis