我有一个与 Firebase 通信的服务,对于它的登录部分,我在广播成功登录事件后收到此错误,所以基本上我的服务如下所示:
angular.module('TestFire').factory('fireService', function ($rootScope, firebasePath, firebasePathToUsers, firebasePathToNicks) {
var fireRef = new Firebase(firebasePath);
var s = {};
s.logged = false;
s.auth = new FirebaseSimpleLogin(fireRef, function(error, user) {
if (user) {
s.logged = true;
$rootScope.$broadcast('UserLogged', user);
} else {
// user is logged out
console.log('User is not logged');
}
return s;
}
在我的登录控制器中,我想在事件触发时重定向到主页:
angular.module('TestFire').controller('loginUserController', function($location, $scope, fireService){
$scope.facebookLogin = function (){
fireService.loginUserWithFacebook();
};
$scope.$on('UserLogged', function(event, user) {
$location.url('/');
if (!$scope.$$phase){
$scope.$apply();
}
});
});
如果我不使用$apply
不会$location
重定向,如果我使用它,我会收到错误
Uncaught TypeError: Cannot read property '$$nextSibling' of null angular.min.js:94
$get.e.$broadcast
虽然我稍后在页面上被重定向,但没有响应进一步的操作,我认为这是由上一个错误引起的。