После закрытия модального меню и setRoot() не работает в IONIC 3. Любое решение?

Я использую приведенный ниже код для отображения модального окна с домашней страницы.

import { SignaturePage } from '../signature/signature'
import { NavController, NavParams, ModalController } from 'ionic-angular';

@Component({
  selector: 'page-home',
  templateUrl: 'home.html',
})

export class QuotationPage {

  constructor(public navCtrl: NavController, public navParams: NavParams, public modalController:ModalController) {
      this.signatureImage = navParams.get('signatureImage');
  }
   //By approve button click this modal will appear
   approvebtn(){
     let modal = this.modalController.create(SignaturePage,{
        "text": "something"
     });
     modal.present();
   }
}

Код TS для модальной страницы. Когда я пытаюсь установить домашнюю страницу в качестве корневой страницы, навигация не работает, а функция setRoot не работает для заданной корневой страницы.

import { Component, ViewChild } from '@angular/core';
import { NavController, NavParams, ViewController} from 'ionic-angular';
import {SignaturePad} from 'angular2-signaturepad/signature-pad';
import { HomePage } from '../home/home';

@Component({
  selector: 'page-signature',
  templateUrl: 'signature.html',
})
export class SignaturePage {
  @ViewChild(SignaturePad) public signaturePad : SignaturePad;
  @ViewChild('myNav') nav: NavController;

  quotetext:any = "";
  public signaturePadOptions : Object = {
    'minWidth': 2,
    'canvasWidth': 320,
    'canvasHeight': 348
  };
  public signatureImage : string;

  constructor(public navCtrl: NavController, public navParam:NavParams, public viewCtrl:ViewController) {
  }

  drawCancel() {
    this.viewCtrl.dismiss();
  }

вот функция перехода

   drawComplete() {
    this.signatureImage = this.signaturePad.toDataURL();
       this.navCtrl.setRoot(HomePage);
  }

  drawClear() {
    this.signaturePad.clear();
  }

}

person Somnath    schedule 26.10.2017    source источник
comment
Домашняя страница — это ваша корневая страница, верно?   -  person Paresh Gami    schedule 26.10.2017
comment
Для моей домашней страницы приложения DashboardPage затем -> SomePage-> SignaturePage-> вызовом drawcomplete он снова возвращается к DashboardPage, но меню не работает, и когда я дважды нажимаю кнопку возврата устройства, он переходит к SomePage.   -  person Somnath    schedule 26.10.2017


Ответы (2)


Когда вы переходите от компонента Overlay, вам нужно сделать, как показано ниже.

import { App, ViewController } from 'ionic-angular';

constructor(private viewCtrl: ViewController,private appCtrl: App) {}

drawComplete() {
    this.signatureImage = this.signaturePad.toDataURL();
    this.appCtrl.getRootNav().setRoot(HomePage);
  }

Вы можете прочитать больше об здесь< /сильный>.

person Sampath    schedule 26.10.2017
comment
drive.google.com/open?id=0BztyVw_3LTvlNElFRmpEYVV6aXc Проверьте этот apk, тогда вы поймете Эта проблема. Зарегистрируйтесь (просто нажмите кнопку) -> На панели инструментов выберите любой -> выберите любой продукт -> теперь свяжитесь с продлением -> подпись - person Somnath; 27.10.2017
comment
Вы можете играть в нее со своего устройства - person Somnath; 27.10.2017
comment
Как тогда его отлаживать? - person Sampath; 27.10.2017
comment
Действительно спасибо, вы спасли мой день. Как вы узнали об этом? Я ищу в документах, и я не могу найти текст об этом. - person manuman94; 05.09.2018
comment
Это здесь @manuman94 ionicframework.com/docs/ API/навигация/NavController/ - person Sampath; 05.09.2018
comment
Большое спасибо. Привет! - person manuman94; 06.09.2018

Вы можете вытолкнуть все страницы, которые были отправлены с помощью popToRoot()

this.navCtrl.popToRoot();
person Paresh Gami    schedule 26.10.2017
comment
У меня не работает, потому что я хочу перейти к root - person Somnath; 26.10.2017
comment
Вы пробовали это? Потому что есть способ установить страницу панели мониторинга как корневую. - person Paresh Gami; 26.10.2017
comment
Да, я пробовал. но у меня есть еще две страницы перед модальным и после модального одна страница. поэтому я хочу двигаться вперед с последней страницы. - person Somnath; 26.10.2017
comment
Могу ли я перейти к корневому индексу с помощью popAll()? - person Somnath; 26.10.2017
comment
Да, ты можешь. popAll() достигает вас в верхней части стека страницы - person Paresh Gami; 26.10.2017
comment
Что происходит, когда вы используете это? - person Paresh Gami; 26.10.2017
comment
выскакивает только предыдущая страница - person Somnath; 26.10.2017