Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 访问活动页面';ionViewCanEnter期间的名称_Angular_Typescript_Ionic2 - Fatal编程技术网

Angular 访问活动页面';ionViewCanEnter期间的名称

Angular 访问活动页面';ionViewCanEnter期间的名称,angular,typescript,ionic2,Angular,Typescript,Ionic2,在Ionic 2中,我试图在进入推送页面(PUSHEE)之前确定发送页面(PUSHER)的名称 在PUSHEE中,我有一个ionViewCanEnter,我想在这里确定推送者的名字。当我使用NavController获取活动页面时,它返回undefined。导航控制器本身不是未定义的,只是来自getActive的响应。有没有关于获取页面推送者姓名的建议 ionViewCanEnter(): boolean { console.log('active page', this.navCtrl

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

在PUSHEE中,我有一个
ionViewCanEnter
,我想在这里确定推送者的名字。当我使用NavController获取活动页面时,它返回
undefined
。导航控制器本身不是未定义的,只是来自
getActive
的响应。有没有关于获取页面推送者姓名的建议

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

重定向到另一个页面的简单示例:

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


}
主页
从'@angular/core'导入{Component};
从“离子角度”导入{IonicPage,NavController,NavParams};
从“../home/home”导入{HomePage};
@IonicPage()
@组成部分({
选择器:“页面级别”,
templateUrl:'level.html',
})
导出类级别页面{
构造函数(公共navCtrl:NavController,公共navParams:navParams){
}
重定向主页()
{
this.navCtrl.push(主页);
}
}

好吧,没有一个好方法可以获取活动页面的名称。但是,可以从推送器发送字符串参数:

this.navCtrl.push(HomePage, {pusherName: "MyPageName"});
在PUSHEE:

ionViewCanEnter(): boolean {
    console.log('active page', this.navParams.get(pusherName));
    return true;
}
编辑: 请注意,您可以使用以下方法获取类的名称(以及页面名称):

(this).constructor.toString()

然而,在我的实验中,当您使用
--prod
运行
ionic
时,构造函数的名称会得到优化。因此,如果您尝试任何其他方法,请确保使用
--prod

对其进行测试。我可以通过
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;
}