【发布时间】:2016-02-25 21:44:04
【问题描述】:
我正在尝试做一个过滤器,它将按确定的字段对我的收藏项进行分组(例如 angular-filter 库中的 groupBy 过滤器)
app.filter('groupBySortedField', function() {
return function(collection, property) {
var result = {};
angular.forEach(collection, function(item) {
var prop = item[property];
if (!result[prop]) {
result[prop] = [];
}
result[prop].push(item);
});
return result;
};
});
效果很好,但是我在控制台中遇到了很多错误:
未捕获的错误:[$rootScope:infdig] 已达到 10 次 $digest() 迭代。
查看打开控制台http://plnkr.co/edit/HFlB7VTMCe2GnM3SUirs?p=preview的示例
如何解决?
【问题讨论】:
-
...您想要的解决方案是github.com/a8m/angular-filter#groupby,它通过记忆以前的返回值来避免无限摘要循环
-
@DanielBeck 谢谢! angular-filter 不能满足我的要求,我需要稍微修改一下,但是 _.memoize 就像一个魅力!请留下答案,我会接受的!
标签: javascript angularjs angular-filters