【发布时间】:2016-10-18 21:53:28
【问题描述】:
myApp.controller('RegistrationController', ['$scope',
function($scope) {
var auth = firebase.database().ref();
// console.log("auth::"+auth);
$scope.login = function() {
$scope.message = "Welcome " + $scope.user.email;
}; //login
$scope.register = function() {
console.log($scope.user.email);
console.log($scope.user.password);
console.log("jdxnx::" + auth);
firebase.auth().createUserWithEmailAndPassword($scope.user.email, $scope.user.password).then(function() {
$scope.message = "Hi" + $scope.user.email + " you have registered"
}).catch(function(error) {
$scope.message = error.message;
console.log($scope.message);
}); // //createUser
}; // register
}
]); // Controller
在上面的代码中,当我单击提交时,我的注册函数运行,然后在 firebase.auth().createUserWithEmailAndPassword 内部运行,但在我得到 firebase.auth().createUserWithEmailAndPassword($scope.user.email,$scope.user.password) 函数的响应之前,我的事件从它出来,然后从注册函数返回到页面,原因是{{message}} 值在 html 页面中保持空白,尽管在后端 firebase.auth().createUserWithEmailAndPassword($scope.user.email,$scope.user.password) 函数处理并获得响应,但事件在处理完成之前返回页面。我希望该函数事件应该等到我得到响应。
请注意,我使用的是 firebase 3.x.x 。
【问题讨论】:
-
尝试在`$scope.message = "Hi" + $scope.user.email + "you have registered" '旁边添加
$scope.$apply();
标签: javascript angularjs firebase firebase-authentication