ユーザーがangularfireで認証された後、別のページにナビゲートしようとしています。他のページに移動する以外はすべて動作します。ここでIonic 2 Angular 2 - 方法からNavControllerにアクセスできない
は私のコードです:
constructor(public navCtrl: NavController, public menu: MenuController, public afAuth: AngularFireAuth, public db: AngularFireDatabase, private platform : Platform) {
this.navigateIfUserIsLogdIn();
}
navigateIfUserIsLogdIn(){
this.authState = this.afAuth.authState;
this.user = this.afAuth.auth.currentUser;
this.afAuth.auth.onAuthStateChanged(function(user) {
if (user) {
// User is signed in.
this.navCtrl.setRoot(HomePage);
} else {
// No user is signed in.
}
});
}
私が手にエラーがある:
エラー:キャッチされない(約束で):TypeError例外:プロパティを読み取ることができません未定義
の 'navCtrl'なぜnavigateIfUserIsLogdIn()内で動作しないのですか?
役立つ、と例を提供:)
constructor(public navCtrl: NavController, public menu: MenuController, public afAuth: AngularFireAuth, public db: AngularFireDatabase, private platform : Platform) {
this.navigateIfUserIsLogdIn();
}
navigateIfUserIsLogdIn(){
this.authState = this.afAuth.authState;
this.user = this.afAuth.auth.currentUser;
var that= this;
this.afAuth.auth.onAuthStateChanged(function(user) {
if (user) {
// User is signed in.
that.navCtrl.setRoot(HomePage);
} else {
// No user is signed in.
}
});
}
ネストされた関数内の[Javascript "this"ポインタ]の可能な複製(https://stackoverflow.com/questions/9644044/javascript-this-pointer-within-nested-function) –