国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

AngularJS中關于ng-class指令的幾種實現方式詳解

2019-11-20 08:58:15
字體:
來源:轉載
供稿:網友

前言

開發中經常會遇到這樣的需求,一個元素需要在不同的狀態下呈現不同的樣子,而在這所謂的的樣子當然就是改變其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>

實現很簡單,就是當classNametrue的時候classchange1,相反則為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>

lalatrue的時候,class則為change3,個人認為這個是比較推薦的,可以彌補第二種方式的點點遺憾~

總結

我們如果在項目中可以靈活的運用這些指令會給我們帶來非常多的便利,我們在解決問題的時候能有更多的思路,這樣我們可以組合的使用這些指令來快速的解決一些比較苦惱的問題!以上就是這篇文章的全部內容,希望能對大家想學習或者工作帶來一定的幫助,如果有疑問大家可以留言交流。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 苍南县| 鄂伦春自治旗| 綦江县| 七台河市| 常熟市| 重庆市| 榆林市| 岐山县| 永州市| 江孜县| 锡林郭勒盟| 石家庄市| 柘城县| 鄂托克旗| 曲阜市| 龙口市| 江都市| 邹平县| 浦城县| 富裕县| 北川| 嘉鱼县| 江西省| 万州区| 贡觉县| 昭平县| 武清区| 临城县| 易门县| 沙河市| 嘉义县| 台东市| 黄陵县| 疏附县| 甘孜| 乌兰察布市| 简阳市| 合阳县| 察雅县| 凤山县| 万山特区|