【问题标题】:Rotate Styles using Angular ng-if使用 Angular ng-if 旋转样式
【发布时间】:2016-03-08 01:04:51
【问题描述】:

仍在学习角度,但在旋转样式时遇到问题。最终,我希望第一个记录是蓝色的,第二个是白色的,第三个是蓝色的,第四个是白色的,等等......

现在我的订单是(不正确的): 记录 1 蓝色 记录 3 蓝色 记录 2 白色 记录4白

任何想法可能是什么问题?

HTML

<div id="dashboard" style="width: 1100px;" ng-controller="controller4">

<div class="blue" ng-repeat="metrics in dashboard" ng-if="($index % 2 == 0)">
 <div align="center">
  <h3>{[{metrics.value}]}</h3>
  <span class=dashboardtext>{[{metrics.name}]}</span>
 </div>
</div>

<div class="white" ng-repeat="metrics in dashboard" ng-if="($index % 2 != 0)">
 <div align="center">
  <h4>{[{metrics.value}]}</h4>
  <span class=dashboardtext>{[{metrics.name}]}</span>
 </div>
</div>


</div>

JS

var dashboard = [

{

value: 15, 
name: "Total Completed"

},


{

value: 1200, 
name: "Additional Widgets Sold"

},


{

value: 16, 
name: "Projects"

},

{

 value: 5, 
 name: "Average Days"

 }


];




myApp.controller('controller4', function($scope) {


$scope.dashboard = dashboard;



});

【问题讨论】:

    标签: javascript html css angularjs ng-class


    【解决方案1】:

    ng-class-even & ng-class-odd 指令完全符合您的需求。

    ng-class-even -> 在$index 时向DOM classList 对象添加一个类值 甚至是

    ng-class-odd -> 将类值添加到 DOM classList 对象时 $index 是奇数

    标记

    <div ng-class="'blue'" ng-class-odd="'white'" ng-repeat="metrics in dashboard">
     <div align="center">
      <h3>{[{metrics.value}]}</h3>
      <span class=dashboardtext>{[{metrics.name}]}</span>
     </div>
    </div>
    

    【讨论】:

      【解决方案2】:

      对于简单的偶数/奇数,您可以使用 ng-class-even 和 ng-class-odd 属性。如果您有更多值的更复杂情况,请使用以下解决方案。

      创建一个过滤器并在类属性中使用它。

      app.filter("classFilter", function () {
                  return function (input) {
                      var $class = "";
                      switch(input % 2){
                          case 0:
                              $class = "blue";
                              break;
                          case 1:
                              $class = "white";
                              break;
                      }
                      return $class;
                  }
              });
      

      然后在您的 HTML 中,您将拥有

      <div class="$index | classFilter" ng-repeat="metrics in dashboard">
       <div align="center">
        <h3>{[{metrics.value}]}</h3>
        <span class=dashboardtext>{[{metrics.name}]}</span>
       </div>
      </div>
      

      【讨论】:

        猜你喜欢
        • 2018-04-30
        • 2017-02-17
        • 1970-01-01
        • 1970-01-01
        • 2016-12-09
        • 2014-11-22
        • 2018-11-04
        • 2018-11-13
        • 2023-03-27
        相关资源
        最近更新 更多