我需要通过ng-repeat在我的应用中创建如下所示的strcuture。
<div class="row">
<div class="col-50">1</div>
<div class="col-50">2</div>
</div>
<div class="row">
<div class="col-50">3</div>
<div class="col-50">4</div>
</div>
现在我的代码如下:
<div class="row">
<label class="item item-radio col col-50" ng-repeat="a in question.answer">
<input type="radio" name="answers" class="a-{{ a.correct }}" value="{{ a.correct }}" ng-click='ansValue("{{ a.correct }}")'>
<div class="item-content">
<img src="img/ans/{{ a.option }}" />
</div>
<i class="radio-icon ion-checkmark"></i>
</label>
</div>
但是在上面的代码中,它只是我拥有的单行标记。我想以某种方式得到行标记包含/包装循环中的每2个项目。实现这一目标的最佳方法是什么?
参考: Ionic Grid Doc
答案 0 :(得分:46)
我设法使用$even
。
<div ng-repeat="number in numbers">
<div class="row" ng-if="$even">
<div class="col col-50">{{numbers[$index]}}</div>
<div class="col col-50">{{numbers[$index + 1]}}</div>
</div>
</div>
Here's一个正在运作的JSFiddle。
答案 1 :(得分:14)
来自@Patrick Reck的解决方案非常出色,但它会强制您重复两次代码,
我建议改进这个:
<div ng-repeat="number in numbers">
<div class="row" ng-if="$even">
<div class="col col-50"
ng-repeat="num in [numbers[$index],numbers[$index + 1]]">
{{num}}
</div>
</div>
</div>
通过这种方式,您可以将代码编写一次,就好像它是正常的ng-repeat
一样答案 2 :(得分:6)
您可以添加flex-wrap:wrap到类行
http://jsfiddle.net/0momap0n/99/
<div ng-controller="MyCtrl">
<div class="row" style="flex-wrap: wrap">
<div class="col col-50" ng-repeat="number in numbers">{{number}}</div>
</div>
var myApp = angular.module('myApp',[]);
function MyCtrl($scope) {
$scope.numbers = [1, 2, 3, 4, 5, 6];
}
答案 3 :(得分:2)
我会这样写,你可以增加$index % 3
以匹配你想要的列数,这个将创建3列......
<div class="row">
<div class="" ng-repeat="i in range(1, 9)">
<div class="clearfix" ng-if="$index % 3 == 0"></div>
<div class="col">
<h1>{{ i }}</h1>
</div>
</div>
</div>
答案 4 :(得分:2)
这个解决方案正在使用flex-flow并且解决了这个问题:
<强> CSS 强>
.container {
display: flex;
flex-flow: row wrap;
}
.item {
width: 50%;
}
<强> HTML 强>
<div class="container">
<div class="item" *ngFor="let number of numbers">
{{number}}
</div>
答案 5 :(得分:0)
尝试如下。您可以使用以下代码创建任意数量的列。您只需使用离子网格的size属性并将noOfColumns替换为所需的列数即可。在这种情况下,只需对noOfColumns使用2。就像魅力一样。
角度网格基于12列布局,根据屏幕大小具有不同的断点。参考:https://ionicframework.com/docs/layout/grid
<ion-grid>
<ion-row >
<ion-col ng-repeat="n in numbers" size="{{12/noOfColumns}}">
{{ n }}
</ion-col>
</ion-row>
</ion-grid>