【转】ng-class的用法

原文出处:https://segmentfault.com/a/11…

在开辟中我们通常会碰到一种需求:一个元素在差别的状况须要展示差别的模样。

而在这所谓的模样固然就是转变其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。

然则有一点不好的只可以让一个元素具有两种状况,虽然这么说!基础也是满足所需了,我平常都用这个。简朴、直观!

!!关于第二种体式格局我曾经有迷惑:这究竟是什么用法?https://segmentfault.com/q/10…

**这并不是NG的用法,而是Javascript的技能。
{true: ‘adopt’, false: ‘reject’}[item.approve]
个中,你把{true: ‘adopt’, false: ‘reject’}当作某个变量a,你就可以改写成:
a[item.approve]
假如item.approve值为true,则上面为a[true],也就是’adopt’
反之,则上面为a[false],也就是’reject’。
固然可以运用最通例的三目运算符item.approve ? ‘adopt’ : ‘reject’。**

第三种:经由过程key/value的体式格局

完成体式格局:

function changeClass(){
$scope.lala = true;
}

<div ng-class=”{’selectClass‘:select,‘choiceClass‘:choice,‘haha‘:lala}”></div>
当lala为true的时刻,class则为haha,个人认为这个是比较引荐的,可以填补第二种体式格局的点点遗憾~

所以基础上,angularJS中ng-class的完成就这三种体式格局~

    原文作者:嘉恩Gavin
    原文地址: https://segmentfault.com/a/1190000010419242
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞