AngularJS中关于ng-class指令的几种实现方式详解
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了AngularJS中关于ng-class指令的几种实现方式详解,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2013字,纯文字阅读大概需要3分钟。
内容图文
![AngularJS中关于ng-class指令的几种实现方式详解](/upload/InfoBanner/zyjiaocheng/350/5f90a37de2a64bafbdd07ffbfe863fb1.jpg)
前言
开发中经常会遇到这样的需求,一个元素需要在不同的状态下呈现不同的样子,而在这所谓的的样子当然就是改变其css
的属性,而实现动态的改变属性值,我们就需要实现动态的更换其class
属性值。
在这给大家介绍三种方法来实现,大家可以根据自己的需求来选择方式,下面来看看。
第一种:通过数据的双向绑定(不推荐)
<div ng-controller="firstController"> <div ng-class="{{className}}"></div> </div> <script> var app=angular.module("myModule",[]) app.controller('firstController',function($scope){ $scope.className='change'; }) </script>
网上各种不推荐,说实话,既然angularJS双向数据绑定这么吊,为什么不能通过这个来改变呢!查了下原由:“在controller
涉及了classname
在我看来是乎总是那么诡异,我希望的是controller
是一个干净的纯javascript意义的object
”,当然并没有明文固定不能够这么使用的,而且反而我觉得这样非常的方便,让html中元素想怎么变就怎么变!同理中的img
元素中的src
就不可以通过别的来改变,但是通过这种方式就是可以的!当然,这种方式也的确给人的感觉怪怪的,个人认为:可以不得已而为之~
第二种:通过对象数组
<div ng-controller="firstController"> <div ng-class="{true:'change1',false:'change2'}[className]"></div> </div> <script> var app=angular.module("myModule",[]) app.controller('firstController',function($scope){ $scope.className=true; }) </script>
实现很简单,就是当className
为true
的时候class
为change1
,相反则为change2
。
但是有一点不好的只能够让一个元素拥有两种状态,虽然这么说!基本也是满足所需了,我一般都用这个。简单、直观!
第三种:通过key/value
<div ng-controller="firstController"> <div ng-class="{'change1':select,'change2':choice,'change3':lala}"> </div> <script> var app=angular.module("myModule",[]) app.controller('firstController',function($scope){ $scope.select=true; $scope.lala=true; }) </script>
当lala
为true
的时候,class
则为change3
,个人认为这个是比较推荐的,可以弥补第二种方式的点点遗憾~
总结
我们如果在项目中可以灵活的运用这些指令会给我们带来非常多的便利,我们在解决问题的时候能有更多的思路,这样我们可以组合的使用这些指令来快速的解决一些比较苦恼的问题!以上就是这篇文章的全部内容,希望能对大家想学习或者工作带来一定的帮助,如果有疑问大家可以留言交流。
内容总结
以上是互联网集市为您收集整理的AngularJS中关于ng-class指令的几种实现方式详解全部内容,希望文章能够帮你解决AngularJS中关于ng-class指令的几种实现方式详解所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。