выполняется scan пока есть изменения (если больше 9 срабатываний: Uncaught Error: 10 $digest() iterations reached. Aborting!). При первом они есть, при втором их нет. Вот так есть при втором, третий scan срабатывает в холостую:
angular.module('tmp',[])
.controller('Ctrl',['$scope', function(data) {
data.items = {
a:{name:'a1', val:1},
b:{name:'a2', val:0},
c:{name:'a3', val:0}
}
}]).filter('customFilter',function(){
return function (items, criterion) {
console.log('Джина вызывали?')
var tmp = {};
for(var i in items){
var item = items[i];
if(item.val == criterion.val){
tmp[i] = item;
}
item.val++;
}
return tmp;
}
})
а так при третьем, четвертый - холостой:
angular.module('tmp',[])
.controller('Ctrl',['$scope', function(data) {
data.items = {
a:{name:'a1', val:1},
b:{name:'a2', val:0},
c:{name:'a3', val:-1}
}
}]).filter('customFilter',function(){
return function (items, criterion) {
console.log('Джина вызывали?')
var tmp = {};
for(var i in items){
var item = items[i];
if(item.val == criterion.val){
tmp[i] = item;
}
item.val++;
}
return tmp;
}
})