[英]How to optimise data retrieval and inter-controller data sharing with AngularFire automatic binding?
说我有
如何以不会两次读取相同数据的方式使用angularfire(最好是使用自动三向绑定)?
因为controller#1在(itemsListRef).$bind($scope, 'items');
时已经获取了项目及其详细信息(itemsListRef).$bind($scope, 'items');
语句执行。 在controller#2中, (itemDetailRef,).$bind($scope, 'itemDetail')
然后将获取已在Controller#1中再次获取的项目明细数据。
我想到的一个选择是:可以使用角度服务一次获取项目数据,然后在控制器之间共享数据,但是我不确定angularfire三向自动绑定将如何发挥作用,或者它是否能工作。 您对此有何想法/建议? 还有其他选择吗? 推荐的处理方式是什么?
Firebase客户端足够聪明,可以使用本地缓存(如果存在)。 Firebase实例是每个基本Firebase URL的单例,因此在同一Firebase中的不同路径上附加多个侦听器不会导致不必要的网络活动。
我建议在服务中创建$firebase
引用,然后在控制器中对项目的详细信息使用3向数据绑定。 例如:
var myapp = angular.module("myapp", ["firebase"]);
myapp.factory("ItemService", ["$firebase", function($firebase) {
return $firebase(itemsListRef);
}]);
myapp.controller("DetailCtrl", ["$scope", "ItemService", function($scope, items) {
items.$child(itemId).$bind($scope, 'itemDetail');
}]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.