我尝试使用从登录尝试后从Firebase收到的承诺来捕获并显示身份验证错误。
btnsignin.addEventListener('click', e =>{
const emailaddress = email.value;
const passworddetail = password.value;
const auth = firebase.auth();
const promise = auth.signInWithEmailAndPassword(emailaddress, passworddetail);
**promise.catch(function(e) {
$scope.signinchallenges = e.message;
});
} );**
在触发btnsignin
时,直到再次单击时才会显示身份验证错误。对此有任何帮助吗?
答案 0 :(得分:1)
此问题是由于AngularJS未意识到您已更新范围。因此,当您更新该值时,AngularJS不会重新绘制该视图。要提醒更新,请使用$timeout
或$apply
:
promise.catch(function(e) {
$timeout(function(e) {
$scope.signinchallenges = e.message;
});
})
或者,您可以简单地将承诺分配给范围:
$scope.signinchallenges = auth.signInWithEmailAndPassword(emailaddress, passworddetail);
然后在您的视图中阅读来自那里的消息:
{{signinchallenges.message}}