我有一个过滤器:
filter('keys', [function() {
return function(obj) {
if (angular.isObject(obj)) {
return Object.keys(obj);
}
};
}])
然后,此过滤器与对象一起使用以获取密钥。我这样使用它:
<directive data="{test: 1, test1: 2, test2: 3} | keys"></directive>
我得到了无限的摘要错误。为什么呢?
答案 0 :(得分:0)
我的猜测是每个循环都会创建一个要过滤的全新对象。您的过滤器在视图中创建一个新对象,该对象反过来触发摘要以在新对象上使用过滤器,依此类推。
您应该在控制器中定义对象,以防止在视图中,在每个循环中创建新对象。
更好的方法是在控制器中使用过滤器,这样可以防止在每个循环中使用过滤器。