Angularjs ngclass基于$ index

时间:2017-05-30 15:13:02

标签: javascript css angularjs

我想根据ng-repeat的索引来设置div的样式,我在这里应用了两种不同的样式。除了其他类之外,具有偶数索引的行将具有为奇数指定的所有类。

控制器:

 var odd= { 'class1' : true, 'class2': true ,'class3': false,'class4': false} ;
 var even = { 'class1' : true, 'class2': true ,'class3': true,'class4': true} ;

 $scope.applyColumnClasses = function(index)
  {

     if ( index % 2 == 0) 
          return even;
     else 
         return odd;
  }

查看:

<div  ng-repeat="a in articles"  ng-class="applyColumnClasses($index)" >

我应该将多于五个类添加到偶数行中。有没有更优雅的方式来做到这一点?

就像将字符串变量设置为“class1,class2”for odd一样,如果它是偶数,我只需追加其他类并返回它。

我正在尝试编写更清晰的代码。可能会声明一个对象而不是我已经做过的两个对象。

任何想法......

2 个答案:

答案 0 :(得分:2)

有两种方式:

class="commonClass" ng-class="{'evenClass':$even,'oddClass':$odd}"

class="commonClass"  ng-class-even="'evenClass'" ng-class-odd="'oddClass'"

答案 1 :(得分:1)

您可以直接应用公共类而无需绑定,其余部分保持原样:

<div  ng-repeat="a in articles" class="class1 class2" ng-class="applyColumnClasses($index)" >