Angular 侧菜单停止工作

Angular 侧菜单停止工作,angular,typescript,ionic2,ionic3,side-menu,Angular,Typescript,Ionic2,Ionic3,Side Menu,我从菜单中创建了离子应用程序 ionic start myApp sidemenu 在其中一个页面上会有一个测试,我希望在测试结束后有一个带有注释的强制页面。在用户填写评论之前,他无法访问任何地方 我创建了一个测试页面和一个评论页面 我决定使用情态动词 在测试页面上有一个按钮,用于打开注释页面 finishTest() { let modal = this.modalCtrl.create('CommentPage'); modal.present(); } 在评论页面上,我

我从菜单中创建了离子应用程序

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);
}
问题是,当我转到主页时,我的侧菜单停止工作

有人遇到过这个问题吗? 怎么解决呢??
您可以使用其他方式来代替Modals吗?

代码的问题是,当您以模式打开页面时,该模式有自己的导航堆栈。因此,当您执行
this.navCtrl.setRoot(主页)时在模式内部,您实际上是将该页面设置为来自模式的导航堆栈的根页面,侧菜单不起作用

为了解决这个问题,您需要在应用程序中获取根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);
  }

}

您可以在
CommentPage
中找到有关使用不同导航堆栈的更多信息

constructor(public navCtrl: NavController, public viewCtrl: ViewController,public appCtrl: App) {}

onSubmit(form: NgForm) {
  this.appCtrl.getRootNav().setRoot(HomePage);
}

我想你的问题会解决的…

请从主页的左向右滑动,然后显示侧菜单这不起作用,比如按按钮
,如果我们从主页移动到新页面“ProgPage”(
this.navCtrl.setRoot('ProgPage');
),它不在菜单中,然后我们进入Modals的“评论页面”,然后从modal到主页的转换不起作用