Búsqueda de sitios web

javascript - Navegando de regreso a la raíz - el botón de alternar menú está roto


Estoy usando Ionic 2.

Página 1 (Página de Búsqueda) -> popover -> Página 2 (Página de Mapa) -> Página 1 (Página de Búsqueda) (menuToggle no funciona)

Tengo una página raíz (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();
  }

Ventana emergente

  presentFilterMap(event: Event) {
    this.viewCtrl.dismiss().then(() => {
      this.nav.push(MapPage, {
        ev: event,
        employeeModel: this.employeeModel,
        fromSearch: true
      })
    });
  }

Pero cuando intento regresar a la página raíz (con un parámetro), se muestra el botón de alternancia del menú (3 líneas), pero cuando hago clic en él no funciona (es decir, no hace nada, cuando debería mostrar el menú lateral).

ts (archivo MapPage) que retorna a la raíz:

  this.nav.insert(0, SearchPage, {
    employeeModel: this.employeeModel
  });

Si intento popToRoot(options), esto funciona y el botón de alternancia del menú funciona. Sin embargo, no recarga la página con el nuevo parámetro.

¿Alguna idea de cómo debería volver a la página principal con un parámetro, por favor?

Gracias

ACTUALIZACIÓN: He intentado lo siguiente, pero no vuelve a la raíz:

  let options = {
    employeeModel: this.employeeModel
  };
  this.nav.popToRoot(options);

ACTUALIZACIÓN: También he intentado cambiar la llamada de los popovers a la siguiente página, pero con poco éxito. Ahora el botón de retroceso en la MapPage funciona, pero cuando voy a la página raíz, el menúToggle todavía no responde a los clics.

  presentFilterMap(event: Event) {
    this.nav.push(MapPage, {
      employeeModel: this.employeeModel,
      fromSearch: true
    }).then(() => {
      this.viewCtrl.dismiss();
    });
  }

Si no cierro el popover,

    this.nav.push(MapPage, {
      employeeModel: this.employeeModel,
      fromSearch: true
    });

entonces cuando uso el botón de retroceso en la MapPage para volver a la raíz, el popover todavía está allí, y el menuToggle funciona como se espera. Pero si en cambio navego de regreso a la página raíz (lo cual necesito hacer), entonces el popover no está allí y el menuToggle no responde.

Esto significa que el problema tiene que ver con el popover.

Respuesta #1

 import { App } from 'ionic-angular';

constuctor(public app: App) {};

pushSignupPage() {
    this.viewCtrl.dismiss().then(() => {
      this.app.getRootNav().push(SignupPage);
    });
  }

esto funciona para mí. buena suerte

Respuesta #2

SOLUCIÓN: Usa eventos para manejar los parámetros y volver a la raíz

 let data = {
    eModel: this.eModel
  };
events.publish('employee:update', data);
this.nav.popToRoot();

En el constructor de tu SearchPage:

events.subscribe('employee:update', (data) => {
//do whatever you need to do with your data:
  let EModel = data[0].eModel;
});

Artículos relacionados