После angular.js условной разметки в ng-repeat я попытался создать настраиваемый фильтр, который группирует. Я сталкивался с проблемами, связанными с идентификацией объектов, и модель наблюдалась за изменениями, но я подумал, что я, наконец, прибил ее, так как никаких ошибок больше не появлялось в консоли.
Оказывается, я был неправ, потому что теперь, когда я пытаюсь объединить его с другими фильтрами (для разбивки на страницы), так
<div ng-repeat="r in blueprints | orderBy:sortPty | startFrom:currentPage*pageSize | limitTo:pageSize | group:3">
<div ng-repeat="b in r">
Я получаю ужасные "10 $digest() итерации, достигнутые. Прерывание!" сообщение об ошибке снова.
Вот мой групповой фильтр:
filter('group', function() {
return function(input, size) {
if (input.grouped === true) {
return input;
}
var result=[];
var temp = [];
for (var i = 0 ; i < input.length ; i++) {
temp.push(input[i]);
if (i % size === 2) {
result.push(temp);
temp = [];
}
}
if (temp.length > 0) {
result.push(temp);
}
angular.copy(result, input);
input.grouped = true;
return input;
};
}).
Обратите внимание на использование маркера angular.copy
и .grouped
на входе, но безрезультатно:(
Я знаю, например, "10 $digest() итераций.! Aborting" из-за фильтра, использующего angularjs, но, очевидно, я его не понял.
Более того, я думаю, что логика группировки немного наивна, но эта другая история. Любая помощь будет с благодарностью, так как это сводит меня с ума.