官网给出的都是navCtrl方法,其他地址也都是给出的是什么路由视图刷新。试了好久,没有试出来。今天获得谷歌大神的支持,得知 modal方法需要 modal自身关闭后进行回调:
//因为modal关闭的时候,不会再次触发父页面的ionViewDidEnter();
故而补充的更多页面ts代码如下:
import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams, ModalController, LoadingController } from 'ionic-angular';
import { LoginPage } from '../login/login';
import { Storage } from '@ionic/storage';
import { BaseUI } from '../../common/baseui';
import { RestProvider } from '../../providers/rest/rest';
import { UserPage } from "../user/user";
/**
* Generated class for the MorePage page.
*
* See https://ionicframework.com/docs/components/#navigation for more info on
* Ionic pages and navigation.
*/
// @IonicPage()
@Component({
selector: 'page-more',
templateUrl: 'more.html',
})
export class MorePage extends BaseUI {
public notlogin: boolean = true;
public logined: boolean = false;
headface: string;
userinfo: string[];
constructor(public navCtrl: NavController,
public navParams: NavParams,
public modalCtrl: ModalController,
public loadingCtrl: LoadingController,
public rest: RestProvider,
private storage: Storage) {
super();
}
ionViewDidLoad() {
//console.log('ionViewDidLoad MorePage');
}
showmodel() {
const modal = this.modalCtrl.create(LoginPage);
//关闭后的回调
//因为modal关闭的时候,不会再次触发父页面的ionViewDidEnter();
modal.onDidDismiss(()=>{
this.loadUserPage();
})
modal.present();
}
ionViewDidEnter() {
this.loadUserPage();
}
loadUserPage() {
this.storage.get('UserId').then((val) => {
// console.log('Your age is', val);
if (val != null) {
//加载用户数据
var loading = super.showLoading(this.loadingCtrl, "加载中...");
this.rest.getUserInfo(val).subscribe(
userinfo => {
this.userinfo = userinfo;
this.headface = userinfo["UserHeadface"] + "?" + (new Date()).valueOf();
this.notlogin = false;
this.logined = true;
loading.dismiss();
}
);
// this.notlogin = false;
// this.logined = true;
// alert("已登录");
} else {
this.notlogin = true;
this.logined = false;
// alert("未登录");
}
});
}
gotouserpage() {
this.navCtrl.push(UserPage)
}
}