2017-05-30 54 views
1

我想根据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”一样,那么万一它甚至会追加其他类并返回它。

我想写更干净的代码。可能会像我已经做过的那样声明一个对象。

有什么想法?

+3

最简单的方法是你为此要唱'ng-class-odd'和'ng-class-even' –

回答

2

有2种方式:

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

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

您可以申请公共类的情况下直接结合,剩下的,因为它是:

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