【问题标题】:Alternate multiple CSS classes in AngularJS在 AngularJS 中交替使用多个 CSS 类
【发布时间】:2015-10-20 12:38:27
【问题描述】:

假设您有一个简单的列表,可以是一个或十个项目。你不知道。你有 5 个 CSS 类要以规则的交替模式显示。最好的方法是什么?

示例 HTML:

<div ng-repeat="item in items | orderBy: 'Title'">
    <div class="clearfix" ng-if="$index % 3 == 0"></div>
    <div class="col-sm-4">
        <div class="tile" ng-class="{ 'purple': expression1, 'red': expression2, 'green': expression3, 'blue': expression4, 'orange': expression5 }">
            <h3 class="title">{{item.Title}}</h3>
            <div>{{item.Description}}</div>
        </div>
    </div>
</div>

CSS

.tile.purple {
    background: #5133ab;
}
.tile.red {
    background: #ac193d;
}
.tile.green {
    background: #00a600;
}
.tile.blue {
    background: #2672ec;
}
.tile.orange {
    background: #dc572e;
}

考虑到这个例子,有没有人知道确保类一致交替的最佳方法?

【问题讨论】:

    标签: javascript css angularjs ng-class


    【解决方案1】:
    angular.module('myApp', [])
    .controller('MyCtrl', function($scope) {
      $scope.items = [1,2,3,4,5,6,7,8,9,10];
      // make an array of color classes
      $scope.colors = ['purple', 'red', 'green', 'blue', 'orange'];
    })
    ;
    
    <div ng-app="myApp" ng-controller="MyCtrl">
      <div ng-repeat="item in items">
        <!-- use modulus operator to pick the right class per item -->
        <div class="tile" ng-class="colors[$index % colors.length]">{{item}}</div>
      </div>
    </div>
    

    Click here for live demo.

    【讨论】:

    • 顺便说一句,它工作得很好。 (对于那些将来可能会读到这篇文章的人)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    • 2014-04-20
    • 1970-01-01
    • 2013-10-20
    相关资源
    最近更新 更多