Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: SomnathОтветов: 2

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

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();
  }

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

typescriptangularionic3modalviewcontrollerionic2

Ответы

Ответ 1 · рейтинг 3 · Sampath

Когда вы переходите от компонента 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);
  }

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

Ответ 2 · рейтинг 1 · Paresh Gami

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

this.navCtrl.popToRoot();

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы