AngularJS ng-repeat double td

时间:2015-06-11 14:06:38

标签: angularjs angularjs-ng-repeat

我环顾四周,能够找到与我相似的问题,但不一样。这可能是一个真正的noobie问题,但我不知道如何做到这一点。我使用ng-repeat显示4个复选框,如下所示:

<tr ng-repeat="type in dataType">
  <td><checkbox ng-model="type.checked"></checkbox> {{type.name}}</td>
</tr>

这给了我一行4个复选框。但我想要的是前两个复选框是并排的。所以2x td在一个tr里面。 但是当我将代码更改为

<tr ng-repeat="type in dataType">
  <td><checkbox ng-model="type.checked"></checkbox> {{type.name}}</td>
  <td><checkbox ng-model="type.checked"></checkbox> {{type.name}}</td>
</tr>

它只是将复选框相乘,最后得到2行和8个复选框。那么如何让ng-repeat将复选框2更改为下一次类型的迭代?

3 个答案:

答案 0 :(得分:4)

您始终可以重组变量,例如:

build.properties

然后:

$scope.rows = [ [dataType[0], dataType[1]], [dataType[2], dataType[3]] ];

答案 1 :(得分:1)

虽然这不是一个完美的解决方案,但它应该可以解决问题:

<tr ng-repeat="type in dataType" ng-if="$index <= 1">
  <td><checkbox ng-model="type.checked"></checkbox> {{type.name}}</td>
  <td><checkbox ng-model="type.checked"></checkbox> {{type.name}}</td>
</tr>

<tr ng-repeat="type in dataType" ng-if="$index > 1">
  <td><checkbox ng-model="type.checked"></checkbox> {{type.name}}</td>
  <td><checkbox ng-model="type.checked"></checkbox> {{type.name}}</td>
</tr>

我正在研究是否可以使用ng-repeat-startng-repeat-end来完成。

如亚历杭德罗所述,另一种解决方案是:

<tr>
  <td><checkbox ng-model="dataType[0].checked"></checkbox> {{dataType[0].name}}</td>
  <td><checkbox ng-model="dataType[1].checked"></checkbox> {{dataType[1].name}}</td>
</tr>

<tr>
  <td><checkbox ng-model="dataType[2].checked"></checkbox> {{dataType[2].name}}</td>
  <td><checkbox ng-model="dataType[3].checked"></checkbox> {{dataType[3].name}}</td>
</tr>

答案 2 :(得分:0)

试试这个:

<tr ng-repeat="_ in dataType" ng-if="$even">
    <td ng-repeat="type in dataType.slice($parent.$index, $parent.$index + 2)"><checkbox ng-model="type.checked"></checkbox> {{type.name}}</td>
</tr>