假设我将 angularFireAuth 放在服务中。
app.factory('authService',
function($rootScope, $timeout, angularFireAuth, FIREBASE_URL) {
return function() {
angularFireAuth.initialize(new Firebase(FIREBASE_URL), {
scope: $rootScope,
name: 'user',
path: "/"
});
$rootScope.$on('angularFireAuth:login', function _set(evt, user) {
$timeout(function() {
$rootScope.auth = {
authenticated: true
};
});
});
$rootScope.$on('angularFireAuth:logout', function(){
$timeout(function() {
$rootScope.auth = {
authenticated: false
};
});
});
}
});
然后我在 .run() 中初始化它
.run(['$rootScope', 'authService', function($rootScope, authService){
authService();
});
我的问题是如何$scope.auth.authenticated
在其他服务和控制器中使用。
我console.log($scope.auth.authenticated)
在控制器中。它总是返回假。好像没有在听/看登录
或者
我可以直接在控制器中使用 $scope.user 并监听它吗?
更新
我创建了一个plunker。