首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngularJS -如何添加多个ng类指令?

AngularJS -如何添加多个ng类指令?
EN

Stack Overflow用户
提问于 2014-03-28 19:19:12
回答 4查看 24.4K关注 0票数 20

以下是使用ng-class指令的两种不同方法。我需要他们两个,在相同的元素,但这是行不通的。

在ng类中使用对象

http://plnkr.co/edit/uZNK7I?p=preview

代码语言:javascript
复制
<div ng-repeat="item in [1, 2, 3, 4, 5]" 
     ng-class="{ first: $first, last: $last }">{{item}}</div>

正确的结果

代码语言:javascript
复制
<div class="first">1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div class="last">5</div>

在ng类中使用表达式

http://plnkr.co/edit/tp6lgR?p=preview

代码语言:javascript
复制
<div ng-repeat="item in [1, 2, 3, 4, 5]" 
     ng-class=" 'count-' + ($index + 1) ">{{item}}</div>

正确的结果

代码语言:javascript
复制
<div class="count-1">1</div>
<div class="count-2">2</div>
<div class="count-3">3</div>
<div class="count-4">4</div>
<div class="count-5">5</div>

现在,把它们放在一起怎么样?

我需要动态类名(如'count-' + n),但也需要多个类的对象语法。

我不能只使用两个ng-class属性(http://plnkr.co/edit/OLaYke?p=preview),只有第一个可以工作。

有什么建议吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-03-28 19:20:54

您不应该在第二次使用ng-class,请使用

代码语言:javascript
复制
<div class="count-{{$index + 1}}" ng-class="{ first: $first, last: $last }">
票数 20
EN

Stack Overflow用户

发布于 2016-11-13 13:24:21

您应该为ngClass提供一个同时包含表达式和对象的数组:

代码语言:javascript
复制
<div ng-class="['count-' + ($index + 1), { first: $first, last: $last }]">

注意:--在接受的答案中建议的解决方案(同时使用ngClass指令和class属性中的插值)是一种糟糕的做法。请参阅更多详细信息这里这里

票数 8
EN

Stack Overflow用户

发布于 2014-09-17 03:36:30

如果需要将它们混合在一起,只需使用字符串连接:

代码语言:javascript
复制
ng-class="'count-' + ($index+1) + ($first?' first':($last?' last':''))"

或者为了更清楚的观点:

代码语言:javascript
复制
ng-class="'count-' + ($index+1) + ($first?' first':'') + ($last?' last':'')"

使用class="{{exp}}"而不是ng-class="exp"并没有已知的优点,因为当exp的值发生变化时,两者都会得到更新。相反,在某些情况下,使用第一种方法可能会导致页面冻结。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22721390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档