【发布时间】:2016-12-25 08:05:27
【问题描述】:
我正在使用 Ionic 2。
第 1 页 (SearchPage) -> 弹出框 -> 第 2 页 (MapPage) -> 第 1 页 (SearchPage)(menuToggle 不起作用)
我有一个根页面(SearchPage):
html
<ion-header>
<ion-navbar>
<button menuToggle>
<ion-icon name="menu"></ion-icon>
</button>
</ion-navbar>
</ion-header>
ts
presentPopover(event: Event): void {
let popover: Popover = this.popoverController.create(SearchPopOverPage, {
ev: event,
employeeModel: this.employeeModel
});
popover.present();
}
弹窗
presentFilterMap(event: Event) {
this.viewCtrl.dismiss().then(() => {
this.nav.push(MapPage, {
ev: event,
employeeModel: this.employeeModel,
fromSearch: true
})
});
}
但是当我尝试返回根页面(带参数)时,它会显示菜单切换按钮(3行),但是当我单击它时它不起作用(即什么也不做,它应该显示侧面菜单)。
ts(MapPage)文件返回根目录:
this.nav.insert(0, SearchPage, {
employeeModel: this.employeeModel
});
如果我尝试popToRoot(options),它会起作用并且菜单切换按钮起作用。但是,它不会使用新参数重新加载页面。
请问我应该如何使用参数导航回根页面?
谢谢
更新: 我尝试了以下方法,但它并没有回到根目录:
let options = {
employeeModel: this.employeeModel
};
this.nav.popToRoot(options);
更新: 我也尝试将弹出框调用更改为下一页,但收效甚微。现在 MapPage 上的后退按钮可以使用,但是当我转到根页面时,menuToggle 仍然没有响应点击。
presentFilterMap(event: Event) {
this.nav.push(MapPage, {
employeeModel: this.employeeModel,
fromSearch: true
}).then(() => {
this.viewCtrl.dismiss();
});
}
如果我不关闭弹出框,
this.nav.push(MapPage, {
employeeModel: this.employeeModel,
fromSearch: true
});
然后,当我使用 MapPage 上的后退按钮返回根目录时,弹出框仍然存在,并且 menuToggle 按预期工作。但是,如果我宁愿导航回根页面(我需要这样做),那么弹出框不存在并且 menuToggle 没有响应。
这意味着问题与弹出框有关。
【问题讨论】:
-
我认为我的问题与弹出框有关,因为 Page 2 (MapPage) menuToggle 也不起作用。因此,一旦单击弹出窗口上的按钮,我认为它会干扰导航。只是猜测。
-
我查看了我的 Ionic 2 代码。尝试完全按照他们预先安装的菜单进行操作,更改根目录以避免返回箭头。
this.nav.setRoot(SearchPage); -
盲人先知,很抱歉花了很长时间才回复。
this.nav.setRoot(SearchPage);告诉我SearchPage,但同样的问题,menuToggle 按钮不起作用。这让我觉得问题是因为我在两者之间有一个popover。我认为这是以某种方式“破坏”它。
标签: javascript angularjs typescript ionic-framework ionic2