假设我想从 firebase 检索用户信息,并且此用户信息将显示在多个路由/控制器中
我应该$rootScope
返回用户信息吗?
或者
在每个控制器中调用以下代码?
firebaseAuth.firebaseRef.child('/people/' + user.id).on('value', function(snapshot) {
$scope.user = snapshot.val();
})
更新
我有一个具有getUserInfo()
功能的以下服务,那么在多个控制器中使用它的最佳方法是什么?调用firebaseAuth.getUserInfo().then()
每个控制器?如果用户数据我必须在几个控制器中使用。我为什么不设置呢$rootScope
?所以我不需要在不同的控制器中一次又一次地调用它。
myapp.service('firebaseAuth', ['$rootScope', 'angularFire', function($rootScope, angularFire) {
this.firebaseRef = new Firebase("https://test.firebaseio.com");
this.getUserInfo = function(id) {
var userRef = this.firebaseRef.child('/human/' + id);
var promise = angularFire(userRef, $rootScope, 'user', {});
return promise;
}
});