的想法是爲了篩選項目將它們分組,並進行了第二ngRepeat
,反覆分項目。
首先,過濾器添加到您的模塊:
module.filter('groupBy', function() {
return function(items, groupedBy) {
if (items) {
var finalItems = [],
thisGroup;
for (var i = 0; i < items.length; i++) {
if (!thisGroup) {
thisGroup = [];
}
thisGroup.push(items[i]);
if (((i+1) % groupedBy) === 0) {
finalItems.push(thisGroup);
thisGroup = null;
}
}
if (thisGroup) {
finalItems.push(thisGroup);
}
return finalItems;
}
};
});
在你CONTROLER(因爲如果你直接在你的模板過濾器,那麼你將有一個$digest loop):
function TaskCtrl() {
$scope.tasksGroupBy2 = $filter('groupBy')(taskGroup, 2);
}
而且在您的.html
:
<div ng-repeat="taskGroup in tasksGroupBy2" class="row-fluid">
<div ng-repeat="task in taskGroup" class="span6 well">{{task.name}}</div>
</div>
您可以使用預定義變量_ $ index_在_ng-repeat_循環內 – remigio
你能舉一個例子嗎,'$ index'到底能幫到我們多少?我們基本上需要'ng-repeat'中的'if'語句。 – Justin
我看過這個例子,沒有辦法使用_ngRepeat_來做到這一點。你應該寫一個自定義的指令,dinamically創建HTML – remigio