在我的应用程序中,我有2个对象数组。layout
数组用于创建twitter引导程序布局。这个数组如下所示:
$scope.layout = [
{c:[{size:12}]},
{c:[{size:2},{size:3},{size:4},{size:3}]},
{c:[{size:3},{size:5},{size:4}]}
];
你可以看到这个数组在这个jsbin中是如何工作的。另一个数组是items数组,这个数组如下所示:
$scope.items =[
{row:1,column:0,names:['Jack','Daniel']},
{row:3,column:3,names:['Eli','Bill']},
{row:2,column:1,names:['Fred','David']}
];
这是我使用的转发器:
<div ng-repeat="(ri,r) in layout" class="row">
<div ng-repeat="(ci,c) in r.c" class="col-md-{{c.size}} col-sm-{{c.size}} col-xs-{{c.size}} col-lg-{{c.size}} bi"> Row{{ri}}-Column{{ci}}
//Maybe other repeater come here
</div>
</div>
现在我希望在Jack , Daniel
中显示row 1 column 0
,并且此1和0在第一和第二个转发器的转发器中是r和c。所以当转发器创建row 2 column 1
时在$ scop.item上重复并找到相关的名称。但我不知道如何在$ scope.item中查找项目。这是我的jsbin
答案 0 :(得分:1)
您可以这样做:
<div ng-repeat="(ri,r) in layout" class="row">
<div ng-repeat="(ci,c) in r.c" class="col-md-{{c.size}} col-sm-{{c.size}} col-xs-{{c.size}} col-lg-{{c.size}} bi">
{{getNames(ri, ci)}}
</div>
</div>
在控制器中定义getNames
的地方:
$scope.getNames = function(r, c) {
var items = $scope.items;
for (var i = 0; i < items.length; i++) {
if (items[i].row == r && items[i].column == c) {
return items[i].names;
}
}
return '';
};