#angularjs #firebase #angular-ui-router #firebase-authentication #angularfire
#angularjs #firebase #angular-ui-router #firebase-аутентификация #angularfire
Вопрос:
Проблема: при входе в систему я хотел бы перенаправить пользователя на новую страницу. Я пытаюсь перейти $state
к своему контроллеру, поэтому я могу это сделать $state.go()
, но я получаю сообщение об ошибке Cannot read property 'go' of undefined
.
Я использую логин Firebase с электронной почтой и паролем, Angular 1.5.8, ui-router и AngularFire.
Завод
app.factory("Auth", ["$firebaseAuth",
function($firebaseAuth) {
return $firebaseAuth();
}
]);
Контроллер
app.controller("AuthCtrl", ["$scope", "Auth", "$rootScope", '$state',
function($scope, Auth, $firebaseArray, $rootScope, $state) {
$scope.auth = Auth;
$scope.createUser = function() {
$scope.message = null;
$scope.error = null;
// Create a new user
Auth.$createUserWithEmailAndPassword($scope.email, $scope.password, $scope.name)
.then(function(firebaseUser) {
$scope.message = "User created with uid: " firebaseUser.uid;
const uid = firebaseUser.uid;
const dbref = firebase.database().ref().child('users/' uid);
const userInst = {}
dbref.update({id:uid, info: {name: $scope.name}});
}).catch(function(error) {
$scope.error = error;
});
};
$scope.signIn = function(){
Auth.$signInWithEmailAndPassword($scope.email, $scope.password).then(function(firebaseUser){
console.log(firebaseUser.uid);
$state.go('dashboard')
})
.catch(function(error) {
var errorCode = error.code;
var errorMessage = error.message;
});
}
$scope.deleteUser = function() {
$scope.message = null;
$scope.error = null;
$scope.auth.$onAuthStateChanged(function(firebaseUser) {
$scope.firebaseUser = firebaseUser;
});
// Delete the currently signed-in user
Auth.$deleteUser().then(function() {
$scope.message = "User deleted";
}).catch(function(error) {
$scope.error = error;
});
};
}
]);
Ответ №1:
$firebaseArray
отсутствует. Внедрить зависимость $firebaseArray
в контроллер.
app.controller("AuthCtrl", ["$scope", "Auth", "$firebaseArray","$rootScope", '$state',
function($scope, Auth, $firebaseArray, $rootScope, $state) {
// CODE
}
]);