1
I次のコードを持っている:私がいる約束コールバックでこれを使用して
private resetPassword() {
this.auth.subscribe(auth => {
this.firebaseRef.auth().sendPasswordResetEmail(auth.auth.email).then(
success => {
this.successMessage = 'A password reset email was sent to ' + auth.auth.email + '. Please follow' +
'the instructions in the email to reset your password.';
},
error => {
console.log(error);
}
)
});
}
問題がthis.successMessage
が成功した場合に設定されていないということです。私はそこにconsole.log
を置くことができ、それは動作しますが、私はその範囲でthis
を参照することができないようです。私はどこでも可能な限り.bind(this)
を使ってみましたが、助けにはなりませんでした。何かご意見は?
これはAngular2アプリであり、successMessage
がテンプレートにレンダリングされていることに注意してください私はthen
の外にメッセージを設定すると正しく動作することを確認しました。
:私は
ngZone.run
でthis.successMessage
割り当てをラップすることによってこれを解決しましたか?あなたのコードは値を読み取ることはありません。あなたは[mcve]が*完全*であることを確認する必要があります。 – Quentinこれはテンプレートに 'successMessage'と表示されている、それが起こっていないAngular2アプリです。そして、はい、私は 'then'の外にメッセージを設定すれば、正しく動作することを確認しました。私はこの情報でオリジナルの投稿を更新します。 –
@EvanSalterは、設定されていない値ではなく、非同期のアクションの後に角型アプリケーションが更新に失敗している可能性がありますか? 'console.log(this)'を実行しても 'undefined'が出るのでしょうか、それともsuccessMessageが実際に設定されていることを示していますか? – m0meni