侧边菜单停止工作
Sidemenu stops working
我从菜单创建了 Ionic 应用程序
ionic start myApp sidemenu
在其中一个页面上会有一个测试,我希望在测试结束后有一个带有评论的必填页面。在填写评论之前,用户无法到达任何地方。
我创建了一个测试页面和一个评论页面
我决定使用模态
在测试页面上有一个打开评论页面的按钮
finishTest() {
let modal = this.modalCtrl.create('CommentPage');
modal.present();
}
在评论页,我想发完后去主页
constructor(public navCtrl: NavController, public viewCtrl: ViewController) {}
onSubmit(form: NgForm) {
this.navCtrl.setRoot(HomePage);
}
问题是当我转到主页时,我的侧边菜单停止工作。
有人遇到过这个问题吗?
如何解决?
你能用别的东西代替模态吗?
您的代码存在的问题是,当您将页面作为模式打开时,该模式有自己的导航堆栈。因此,当您在模式内部执行 this.navCtrl.setRoot(HomePage);
时,实际上是将该页面设置为模式导航堆栈的根页面,其中侧边菜单不起作用。
为了解决这个问题,您需要在您的应用程序中获取对根 NavController 的引用,如下所示:
import { Component } from '@angular/core';
import { App } from 'ionic-angular';
@Component({... })
class YourModalPage {
constructor(public appCtrl: App, ...) {}
pushPage() {
this.appCtrl.getRootNav().push(HomePage);
}
setPageAsRoot() {
this.appCtrl.getRootNav().setRoot(HomePage);
}
}
您可以找到更多关于使用不同导航堆栈的信息here。
您需要在CommentPage
中更改
constructor(public navCtrl: NavController, public viewCtrl: ViewController,public appCtrl: App) {}
onSubmit(form: NgForm) {
this.appCtrl.getRootNav().setRoot(HomePage);
}
我想你的问题会得到解决...
我从菜单创建了 Ionic 应用程序
ionic start myApp sidemenu
在其中一个页面上会有一个测试,我希望在测试结束后有一个带有评论的必填页面。在填写评论之前,用户无法到达任何地方。
我创建了一个测试页面和一个评论页面
我决定使用模态
在测试页面上有一个打开评论页面的按钮
finishTest() {
let modal = this.modalCtrl.create('CommentPage');
modal.present();
}
在评论页,我想发完后去主页
constructor(public navCtrl: NavController, public viewCtrl: ViewController) {}
onSubmit(form: NgForm) {
this.navCtrl.setRoot(HomePage);
}
问题是当我转到主页时,我的侧边菜单停止工作。
有人遇到过这个问题吗? 如何解决? 你能用别的东西代替模态吗?
您的代码存在的问题是,当您将页面作为模式打开时,该模式有自己的导航堆栈。因此,当您在模式内部执行 this.navCtrl.setRoot(HomePage);
时,实际上是将该页面设置为模式导航堆栈的根页面,其中侧边菜单不起作用。
为了解决这个问题,您需要在您的应用程序中获取对根 NavController 的引用,如下所示:
import { Component } from '@angular/core';
import { App } from 'ionic-angular';
@Component({... })
class YourModalPage {
constructor(public appCtrl: App, ...) {}
pushPage() {
this.appCtrl.getRootNav().push(HomePage);
}
setPageAsRoot() {
this.appCtrl.getRootNav().setRoot(HomePage);
}
}
您可以找到更多关于使用不同导航堆栈的信息here。
您需要在CommentPage
constructor(public navCtrl: NavController, public viewCtrl: ViewController,public appCtrl: App) {}
onSubmit(form: NgForm) {
this.appCtrl.getRootNav().setRoot(HomePage);
}
我想你的问题会得到解决...