Angular $ watchCollection vs AngularFire $ watch

时间:2015-03-04 09:35:40

标签: firebase angularfire

我正在使用带有这样的数组的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);
});

哪一个更快,每个用例是什么?

由于

1 个答案:

答案 0 :(得分:2)

您需要将AngularFire视为Firebase API的服务包装器。它增强并使用Angular的功能,但最终旨在帮助您集成回Firebase。那就是说......

  • scope.$watchCollection() according to the spec“浅看对象的属性,并在任何属性发生变化时触发”。它适用于数组和对象映射,但仅监视客户端持有的对象。

  • AngularFire中的
  • x.$watch实际上是一个能够实现“三向数据绑定”功能的函数抽象。请注意$watch用于$FirebaseObject$FirebaseArray - 它在每个上下文中都有不同的功能,但实际上可以让您使客户端中的数据与服务器上的更新保持同步/火力。

  • 考虑到不同的角色,“更快”并不是一个合适的问题。如果您在AngularFire中使用$watch,则无需在同一对象上使用$watchCollection。对于它的价值,AngularFire的$watch实际上非常快。