我环顾四周,能够找到与我相似的问题,但不一样。这可能是一个真正的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更改为下一次类型的迭代?
答案 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-start
和ng-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>