在ionViewCanEnter

时间:2017-08-17 21:25:38

标签: angular typescript ionic2

在Ionic 2中,我想在进入推送页面(PUSHEE)之前确定发送页面的名称(PUSHER)。

在PUSHEE中,我有一个ionViewCanEnter,我想确定PUSHER的名字。当我使用NavController获取活动页面时,它返回undefined。 NavController本身未定义,只是来自getActive的响应。有关获取页面名称PUSHER的建议吗?

ionViewCanEnter(): boolean {
    console.log('active page', this.navCtrl.getActive());
    return true;
}

3 个答案:

答案 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);
 }


}