我有一个角度ng重复,如波纹管,
<div class="row" >
<div class="col-md-6" ng-repeat="(index,data) in mydata">
<-- my content -->
</div>
</div>
这将创建如下所示的输出
<div class="row" >
<div class="col-md-6" ng-repeat="(index,data) in mydata">
<-- my content -->
</div>
<div class="col-md-6" ng-repeat="(index,data) in mydata">
<-- my content -->
</div>
<div class="col-md-6" ng-repeat="(index,data) in mydata">
<-- my content -->
</div>
-----------------------
----------------- Etc.
</div>
但我还需要重复<div class="row" >
,每行包含两个<div class="col-md-6"
。
此输出需要
<div class="row" >
<div class="col-md-6" ng-repeat="(index,data) in mydata">
<-- my content -->
</div>
<div class="col-md-6" ng-repeat="(index,data) in mydata">
<-- my content -->
</div>
</div>
<div class="row" >
<div class="col-md-6" ng-repeat="(index,data) in mydata">
<-- my content -->
</div>
<div class="col-md-6" ng-repeat="(index,data) in mydata">
<-- my content -->
</div>
</div>
<div class="row" >
<div class="col-md-6" ng-repeat="(index,data) in mydata">
<-- my content -->
</div>
<div class="col-md-6" ng-repeat="(index,data) in mydata">
<-- my content -->
</div>
</div>
------- Etc
是否可以使用ng-repeat
?
答案 0 :(得分:4)
正如评论中所述,如果您希望行与mydata
中的每个元素重复,则需要将ng-repeat
放在包含行的<div>
上。
由此决定是否要对内部<div>
进行硬编码:
<div class="row" ng-repeat="data in mydata">
<div class="col-xs-6"> {{data.index}} </div>
<div class="col-xs-6"> {{data.value}} </div>
</div>
或在其上使用其他ng-repeat。
<div class="row" ng-repeat="(index,data) in mydata">
<div class="col-xs-6" ng-repeat="i in data"> {{i}} </div>
</div>
其中mydata
是具有以下结构的json数组:
$scope.mydata = [{index:0,value:'hello'},
{index:1,value:'hello1'},
{index:2,value:'hello2'}
]
这里是plunkr
<强>更新强>
如果您有以下数据,
$scope.mydata = [{value:'hello0'},
{value:'hello1'},
{value:'hello2'},
{value:'hello3'}];
并且您希望将其显示为
在视图中hello0 hello1
hello2 hello3
,您需要检查偶数迭代中出现的元素,并在$index
和$index+1
处打印元素。我使用了$even
。但您也可以创建自定义过滤器。
<div class="row" ng-repeat="data in mydata">
<div ng-if="$even">
<div class="col-xs-6" > {{mydata[$index].value}} </div>
<div class="col-xs-6" > {{mydata[$index + 1].value}} </div>
</div>
</div>
继续更新plunker
答案 1 :(得分:0)
创建指令:
angular.module(....)
.directive('myRows',function(){
return {
restrict : 'A',
template : '<div class="row"><div class="col-md-6" ng-repeat="(index,data) in mydata"><-- my content --></div></div>'
};
});
这里假设mydata是在周围控制器的范围内定义的。 在你的html中使用它:
<div data-my-rows><div>
答案 2 :(得分:0)
所以,你现在有两个答案可以正确解决你的问题,并会产生你要求的结果,但我想给你一些关于你的Bootstrap结构的建议(虽然是未经请求的)。
在Bootstrap中,不为每12个网格单元重复行是完全可以接受的。实际上,如果要同时使用多个响应列类,例如使用col-lg-4和col-md-6在大视口上生成3列,在中型视口上生成2列,则不能在重复内容之间插入行。
由于col类使用float和percentages,因此您不必担心“终止”该行。元素将简单地相互浮动,最多12个网格单位,然后开始一个新的自然水平“行”。这就是Bootstrap响应网格的工作原理。
您应该将行用于两个目的:
我所说的是你的初始ng-repeat结构更好,并且会为你提供更灵活的结果。
答案 3 :(得分:0)
是的,ng-repeat可以做到这一点。
以下是我项目的示例代码
<tbody>
<tr ng-repeat="proj in projects>
<td>
{{proj.projectID}}
</td>
<td>
{{proj.projectName}}
</td>
<td>
{{proj.project.start date | date:'mediumDate'}}
</td>
<td>
{{proj.projectStatus}}
</td>
</tr>
</tbody>
我希望这会有所帮助