使用AngularJS检测AngularFireCollection的更改

时间:2013-07-15 09:44:37

标签: javascript angularjs firebase angularfire

基本上,我正在尝试使用带有angularFireCollection的$ watch。它似乎并不像我想要的那样工作。

这就是我现在所拥有的:

$scope.bits = angularFireCollection(new Firebase(url).limit(75));

$scope.$watch('bits', function() {

    console.log('new');

});

因此,当我加载页面时,它会在首次加载数据时在控制台中记录“new”,这很好,但是当新数据进入时,它不会记录任何内容。知道为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

$ watch只查看对象引用(它使用===比较它们),因为$ scope.bits总是相同的数组实例,即使它的内容已经改变,它也不会激活你的监听器。 / p>

您可以将其他参数传递给$ watch,以便对对象的内容进行比较:

$scope.$watch('bits', function() {}, true);

我从来没有听说过使用bits.length作为@robertklep的建议,但这看起来也很优雅,如果他将其作为答案发布,我会赞成它。