我正在使用带有这样的数组的angularfire:
var ref = new Firebase(URL);
var sync = $firebase(ref);
$rootScope.list = sync.$asArray();
我想知道使用angular的$ watchCollection之间的区别 在'list'上并使用angularfire内置$ watch这样:
$rootScope.list.$watch(function(event) {
console.log(event);
});
哪一个更快,每个用例是什么?
由于
答案 0 :(得分:2)
您需要将AngularFire视为Firebase API的服务包装器。它增强并使用Angular的功能,但最终旨在帮助您集成回Firebase。那就是说......
scope.$watchCollection()
according to the spec“浅看对象的属性,并在任何属性发生变化时触发”。它适用于数组和对象映射,但仅监视客户端持有的对象。
x.$watch
实际上是一个能够实现“三向数据绑定”功能的函数抽象。请注意$watch
用于$FirebaseObject和$FirebaseArray - 它在每个上下文中都有不同的功能,但实际上可以让您使客户端中的数据与服务器上的更新保持同步/火力。
考虑到不同的角色,“更快”并不是一个合适的问题。如果您在AngularFire中使用$watch
,则无需在同一对象上使用$watchCollection
。对于它的价值,AngularFire的$watch
实际上非常快。