在Ionic 2中,我想在进入推送页面(PUSHEE)之前确定发送页面的名称(PUSHER)。
在PUSHEE中,我有一个ionViewCanEnter
,我想确定PUSHER的名字。当我使用NavController获取活动页面时,它返回undefined
。 NavController本身未定义,只是来自getActive
的响应。有关获取页面名称PUSHER的建议吗?
ionViewCanEnter(): boolean {
console.log('active page', this.navCtrl.getActive());
return true;
}
答案 0 :(得分:2)
AFAIK,没有一种获取活动页面名称的好方法。但是,从PUSHER,您可以发送一个字符串参数:
this.navCtrl.push(HomePage, {pusherName: "MyPageName"});
在PUSHEE:
ionViewCanEnter(): boolean {
console.log('active page', this.navParams.get(pusherName));
return true;
}
修改强> 请注意,您可以使用以下命令获取类的名称(以及页面名称):
(this).constructor.toString()
但是,在我的实验中,当您使用ionic
运行--prod
时,构造函数的名称会得到优化。因此,您尝试的任何其他方式,请务必使用--prod
进行测试。
答案 1 :(得分:0)
我可以通过getViews
ionViewCanEnter(): boolean {
console.log('getViews', this.navCtrl.getViews());
var all_views = this.navCtrl.getViews();
var last_view = all_views[all_views.length-1];
var last_view_name = last_view.name;
}
答案 2 :(得分:-1)
重定向到另一个页面的简单示例:
<button ion-button (click)="redirectHomepage();">Home Page</button>
import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { HomePage } from '../home/home';
@IonicPage()
@Component({
selector: 'page-level',
templateUrl: 'level.html',
})
export class LevelPage {
constructor(public navCtrl: NavController, public navParams: NavParams) {
}
redirectHomepage()
{
this.navCtrl.push(HomePage);
}
}