基本上,我正在尝试使用带有angularFireCollection的$ watch。它似乎并不像我想要的那样工作。
这就是我现在所拥有的:
$scope.bits = angularFireCollection(new Firebase(url).limit(75));
$scope.$watch('bits', function() {
console.log('new');
});
因此,当我加载页面时,它会在首次加载数据时在控制台中记录“new”,这很好,但是当新数据进入时,它不会记录任何内容。知道为什么会这样吗?
答案 0 :(得分:0)
$ watch只查看对象引用(它使用===比较它们),因为$ scope.bits总是相同的数组实例,即使它的内容已经改变,它也不会激活你的监听器。 / p>
您可以将其他参数传递给$ watch,以便对对象的内容进行比较:
$scope.$watch('bits', function() {}, true);
我从来没有听说过使用bits.length
作为@robertklep的建议,但这看起来也很优雅,如果他将其作为答案发布,我会赞成它。