2017-10-13 2 views
1

J'ai une page ionique 3 qui a besoin d'actualiser les données de la page si elle est entrée à partir d'un navCtrl.setRoot() mais pas si la page est renvoyée à via un navCtrl.pop(). J'utilise ionViewDidEnter() pour détecter quand la page est entrée mais ne peut pas établir comment faire la distinction entre l'entrée de setRoot() et l'entrée de pop().Est-ce que ionViewDidEnter ionique peut détecter pop vs setRoot?

Mon projet est un projet Tabs. Le setRoot() vient chaque fois que l'onglet de la page est sélectionné.

Répondre

1

Mise à jour:

Vous devez utiliser Events here.You doivent Override événement back button comme indiqué ci-dessous.

.ts

@ViewChild(Navbar) navBar: Navbar; 

ionViewDidLoad() { 
    this.navBar.backButtonClick = (e: UIEvent) => {//override back button 
     this.events.publish(Handlers.NEW_PROJECT_PAGE_BUDGET_HANDLER, this.data); 
     this.navCtrl.pop(); 
    } 
    } 

Old Réponse:

navCtrl.setRoot() signifie qu'il pousse une nouvelle page à la pile de navigation. Vous pouvez donc utiliser constructor() de la page ou ionViewDidLoad() - This event only happens once per page being created.

navCtrl.pop() signifie que vous ne pouvez utiliser que le ionViewDidEnter() - Runs when the page has fully entered and is now the active page. This event will fire, whether it was the first load or a cached page. pour le détecter (ou le déclencher) puisqu'il utilise la page the cached.

+0

J'utilise un projet Tabs. Chaque fois que la page est sélectionnée via un onglet, je veux recharger les données, mais chaque fois que la page est entrée via une pop (retour), je veux juste montrer l'état précédent de la page. –

+0

Encore, vous pouvez utiliser les «événements» mentionnés ci-dessus non? Aucun problème? – Sampath

+0

Peut-être que je ne comprends pas? ionViewDidLoad() ne s'exécute que la première fois que la page est lancée via un onglet. Chaque fois que je ne reçois plus que ionViewDidEnter(), je ne peux plus distinguer un Tab setRoot et un pop d'un clic sur un bouton précédent. –