0
を未定義が、私は未定義の参照にをPromise.catch内の関数を呼び出すと、エラー状況に対処するためにPromise.catch内から関数を呼び出すしよう
を避けるために、それを構造化するかどうかはわかりませんされて
TypeError: Cannot read property 'showLoginErrorWindow' of null
を未定義が、私は未定義の参照にをPromise.catch内の関数を呼び出すと、エラー状況に対処するためにPromise.catch内から関数を呼び出すしよう
を避けるために、それを構造化するかどうかはわかりませんされて
TypeError: Cannot read property 'showLoginErrorWindow' of null
ちょうどを追加します。目標は、非同期ログイン()関数を呼び出し、パスワードが無効で表示された場合、ユーザー
// Log in user
login(email, password){
//send login request to firebase
this.af.auth.login(
{
email: email,
password: password
},
{
provider: AuthProviders.Password,
method: AuthMethods.Password,
}
).then(function(){
console.log('Success');
})
.catch(function(error){
this.showLoginErrorWindow(error);
);
}
// Display error message to user
// ** This function never gets called **
showLoginErrorWindow(message){
console.log('message: ' + message);
this.loginErrorMessage = 'Invalid email or password';
this.showLoginError = true; //Angular
}
へのメッセージは私にエラーを与えていますをメソッドに追加し、必要に応じて使用します。私は毎回リンクハックthatsです。
// Log in user
login(email, password){
//send login request to firebase
var current = this;
this.af.auth.login(
{
email: email,
password: password
},
{
provider: AuthProviders.Password,
method: AuthMethods.Password,
}
).then(function(){
console.log('Success');
})
.catch(function(error){
current.showLoginErrorWindow(error);
);
}
// Display error message to user
// ** This function never gets called **
showLoginErrorWindow(message){
console.log('message: ' + message);
this.loginErrorMessage = 'Invalid email or password';
this.showLoginError = true; //Angular
}
私が間違っている場合、これはおそらく私がやっていることです。私に知らせてください。
プロミスはjavascriptの非同期メソッドで、javascriptで 'this'を使用しようとしています。 – Smit
[コールバック内の正しい\ 'this \ 'にアクセスするにはどうすればいいですか?](http://stackoverflow.com/questions/20279484/how-to-access-the-correct-this-inside-a-callback ) –
あなたのコードをすべて投稿してください。あなたの例で 'this'が何を指しているのかを知る方法はありません。 –