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

Mic*_*wis 20 javascript angularjs ng-class

以下是使用该ng-class指令的两种不同方法.我需要它们,在同一个元素上,但这不起作用.

在ng-class中使用对象

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

<div ng-repeat="item in [1, 2, 3, 4, 5]" 
     ng-class="{ first: $first, last: $last }">{{item}}</div>
Run Code Online (Sandbox Code Playgroud)

正确的结果

<div class="first">1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div class="last">5</div>
Run Code Online (Sandbox Code Playgroud)

在ng-class中使用表达式

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

<div ng-repeat="item in [1, 2, 3, 4, 5]" 
     ng-class=" 'count-' + ($index + 1) ">{{item}}</div>
Run Code Online (Sandbox Code Playgroud)

正确的结果

<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>
Run Code Online (Sandbox Code Playgroud)

现在,如何一起使用它们?

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

我不能只使用2个ng-class属性(http://plnkr.co/edit/OLaYke?p=preview),只有第一个属性有效.

有什么建议?

tym*_*eJV 20

您不应该使用ng-class第二个,使用

<div class="count-{{$index + 1}}" ng-class="{ first: $first, last: $last }">
Run Code Online (Sandbox Code Playgroud)

  • @tymeJV` {{$ index + 1}}`是一个插值,你建议在`class`属性中同时使用`ngClass`指令 (2认同)
  • @tymeJV文档引用:>在同一元素上使用ngClass指令时,不应在class属性的值中使用插值. (2认同)

Max*_*kov 7

您应该提供ngClass包含表达式和对象的数组:

<div ng-class="['count-' + ($index + 1), { first: $first, last: $last }]">
Run Code Online (Sandbox Code Playgroud)

注意: 在接受的答案中建议的解决方案(ngClassclass属性中同时使用指令和插值)是一种不好的做法.在这里这里查看更多细节.