[英]Page Navigation Issues ionic2 and angular2
在我的Ionic 2應用程序中,有兩個頁面,但是在加載ProfilePage
之后,它將推送LoginPage
,然后刷新它,然后頁面變為空白。 有人知道為什么會這樣嗎?
這是我的代碼
app.component.ts
import { Component } from '@angular/core';
import { Platform } from 'ionic-angular';
import { StatusBar } from 'ionic-native';
import { ProfilePage } from '../pages/profile/profile';
import { LoginPage } from '../pages/login/login';
import { AuthService } from '../services/auth/auth.service';
@Component({
template: `<ion-nav [root]="rootPage"></ion-nav>`
})
export class AuthApp {
rootPage: any = ProfilePage;
constructor(platform: Platform, private auth: AuthService) {
platform.ready().then(() => {
StatusBar.styleDefault();
auth.startupTokenRefresh();
});
}
}
profile.ts
import {Component} from '@angular/core';
import {AuthService} from '../../services/auth/auth.service';
import { NavController } from 'ionic-angular';
import { LoginPage } from '../login/login';
@Component({
templateUrl: 'profile.html',
})
export class ProfilePage {
constructor(public auth: AuthService, public navCtrl: NavController) {
}
ngOnInit() {
console.log(this.auth.authenticated())
if (!this.auth.authenticated()) {
this.navCtrl.setRoot(LoginPage);
}
}
}
登錄名
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
@Component({
templateUrl: 'login.html',
})
export class LoginPage {
authType: string = "login";
error: string;
constructor(public navCtrl: NavController) {}
}
關於我做錯了什么建議嗎? 為什么在推動LoginPage
時刷新?
可能是因為您將頁面設置為root而不是將其推送。 代替this.navCtrl.setRoot(LoginPage);
您可以嘗試this.navCtrl.push(LoginPage);
ngOnInit()
的console.log語句是否被打印兩次?
ngOnInit()
可能被調用兩次 :一次是在聲明頁面時調用,第二次是在每次按下頁面時調用。
您可以嘗試將ngOnInit()
更改為ionViewDidLoad()
(有關更多信息,請參見此資源 )
無論如何,如果您可以發布app.module.ts
文件的內容,將大有幫助。 為什么頁面類中沒有@IonicPage
裝飾器?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.