根据位置在表格中显示角度变量值

时间:2016-03-22 07:01:50

标签: javascript html angularjs

我有一个角度变量,其值为[170,1,130,3,134,4 ....等等]。我希望以表格形式显示它,使得值出现在表中的两列中,例如。一列中的所有偶数位置值和其他列中的所有奇数位置值。

col1    col2
170     1
130     3
134     4

我编写了以下代码,但它在一列中显示所有代码。 PLZ。提出解决方案。谢谢提前

<table class="table">
     <tr ng-repeat="item in output track by $index" ng-switch="$even" ng-class-even="'even'" ng-class-odd="'odd'">
          <td ng-switch-when="true">{{item}}</td>
          <td ng-switch-default>{{item}}</td> 
     </tr>

这是对所有列的反映,如:

Col1
 170
 1
 130
 ...
 ...

3 个答案:

答案 0 :(得分:0)

请勿使用ngSwitchWhen上的td。相反,请在div内使用td,如下所示:

 <td>
     <div ng-switch-when="true">{{item}}</div>
 </td>
 <td>
     <div ng-switch-default>{{item}}</div>
 </td> 

这将保证两列。您可以做的另一件事是为同等大小的列设置width的{​​{1}}。

答案 1 :(得分:0)

你可以使用&#34;模数%&#34;得到偶数和奇数并相应地打印。在&#34; ng-switch&#34;中写下你的表达并检查以下示例值:

<html>
    <head>
        <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
    </head>
    <body>

        <div  ng-app="myApp" ng-controller="myCtrl">

            <span  ng-repeat="obj in items">
                    <div ng-switch on="{{obj%2}}"> 
                        <div ng-switch-when="1">Odd: {{obj}}</div>
                        <div ng-switch-when="0">Even: {{obj}}</div>
                     </div>
      <div></div>

   </div>
            </span>

        </div>

        <script>
            var app = angular.module('myApp', []);
            app.controller('myCtrl', function($scope) {
                $scope.items = [12,11,34,33,54];                
            });
        </script>
    </body>
</html>

这是小提琴:http://jsfiddle.net/Lvc0u55v/1391/

答案 2 :(得分:0)

你可以通过以奇数偶数值重新解析数组来实现这一点:

JS:

var app = angular.module("app", []);
app.controller('dummy', function($scope, $location) {
  var output = [170, 1, 130, 3, 134, 4], odd = [], even = [];
  for (var i = 0; i < output.length; i++) {
    if ((i + 2) % 2 == 0) {
      odd.push(output[i]);
    } else {
      even.push(output[i]);
    }
  }
  $scope.output = {odd: odd, even: even};
});

HTML:

<div ng-app="app" ng-controller="dummy">
  <table>
    <tr ng-repeat="odd in output.odd track by $index">
      <td>{{odd}}</td>
      <td>{{output.even[$index]}}</td>
    </tr>
  </table>
</div>

JSFiddle