无法使用 ionic2 在设备上获取上一页名称
Posted
技术标签:
【中文标题】无法使用 ionic2 在设备上获取上一页名称【英文标题】:cannot get previous page name on device using ionic2 【发布时间】:2017-06-15 05:13:04 【问题描述】:我正在使用离子 2。
我更新了我的 ionic 版本。
离子版本 3.4.0
如果用户未通过身份验证,我的根页面是登录页面。用户登录后转到仪表板 Page.user 当点击硬件返回按钮时转到登录页面。
如果用户通过身份验证单击硬件后退按钮不进入登录页面,我需要。显示消息“您要退出吗?”
因为我需要获取上一页的名称。
我使用了这个代码
this.navCtrl.last();
在浏览器上可以正常工作,但在设备上不行。
我运行我的应用程序。
我安慰了值
t _isHidden: false, willEnter: e, didEnter: e, willLeave: e, didLeave: e…
它返回的页面名称是't'。
【问题讨论】:
【参考方案1】:然后,您可以在路由到新页面时传递当前页面的名称。然后您可以在新页面中使用该名称。
示例(假设我们从页面 A 路由到页面 B)
在页面 A
this.navCtrl.push(B,previousPage:'A');
在页面 B
class B
constructor(private navParams: NavParams)
let previousPage= navParams.get('previousPage');
====更新=======
我不明白您为什么要使用以前的页面名称来实现此目的。您的要求可以达到以下任何方式。
在您的应用组件中将根页面设置为loginPage
。
public rootPage: any = LoginPage;
那么,如果用户登录成功。通过调用路由到仪表板页面
navCtrl.setRoot(HomePage); // here user will route to the home page and set it as root
当用户点击退出时,您可以将根页面重新更改为登录页面
navCtrl.setRoot(LoginPage);
如果用户通过身份验证,则根页面将为HomePage
,如果用户单击返回按钮,用户将离开应用程序。
希望这会帮助你 :) 享受 Ionic ;)
【讨论】:
感谢您的回复。我该怎么做这个 app.component.ts 你的根页面是什么。 ?请描述您的要求(最好能提供app.component.ts
和rootPage.ts
相关内容)
我也使用 this.nav1.setRoot(pagename)。但仍然没有解决这个问题。我尝试过这种方式 console.log(this.nav.getActive()); console.log(this.navCtrl.getActive().component.name);这只是在设备上返回字母 t,但在浏览器中确实有效。
我希望处理硬件后退按钮,因为我需要获取当前视图的名称。以上是关于无法使用 ionic2 在设备上获取上一页名称的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 JavaScript 获取上一页 URL? [复制]