It is currently 22 April 2025, 13:30 Advanced search

Individuare view corrente

Domande e risposte su come utilizzare Instant Developer Cloud al meglio

Individuare view corrente

Postby A.Piunti » 25 July 2019, 7:34

Buongiorno,
in un progetto Ionic abbiamo il menù di navigazione sulla Main Page con i link alle varie pagine (pagina1, pagina2, ecc.).
Come è possibile individuare la view aperta ed evitare che, cliccando ad esempio sul link della pagina2 del menù, si apra nuovamente la stessa view?

Grazie.
User avatar
A.Piunti
 
Posts: 317
Joined: 1 January 2015, 13:20

Re: Individuare view corrente

Postby r.zambito » 29 July 2019, 8:31

Buongiorno, per poter individuare la view correntemente aperta nello stack di navigazione, all'interno della videata mainPage, si può ricorrere al metodo:

var openView = view.getActivePage();

Il metodo restituisce l'istanza relativa alla view aperta.
Si può quindi a quel punto memorizzare l'istanza e/o passarla al metodo push così da non creare una nuova istanza per la videata.
r.zambito
 
Posts: 122
Joined: 17 June 2014, 7:38

Re: Individuare view corrente

Postby A.Piunti » 29 July 2019, 10:28

Il controllo che ho inserito sul click di ogni voce di menù è il seguente, ma sembra non funzionare:

Code: Select all
var activePage = view.getActivePage();

if (activePage == App.Dashboard) {
   //return in quanto la view aperta è già quella corrente
   return;
} else {
   //apro la view di riferimento
   App.Main.push(app, App.Dashboard, {animate : false});
}


Il confronto restituisce sempre false, pertanto la pagina viene pushata ogni volta. Come mai?
User avatar
A.Piunti
 
Posts: 317
Joined: 1 January 2015, 13:20

Re: Individuare view corrente

Postby r.zambito » 29 July 2019, 14:00

Il codice è quasi completamente corretto, c'è un errore nel controllo del tipo di ActivePage.
App.Dashboard è infatti la classe della videata e in questo caso la si sta confrontando con l'istanza di una videata.

Il controllo corretto è il seguente:
Code: Select all
  if(activePage instanceOf App.Dashboad) {
     // return in quanto la view è già aperta
  }
  else {
     // apro la view di riferimento
  }



Così dovreste risolvere.
r.zambito
 
Posts: 122
Joined: 17 June 2014, 7:38

Re: Individuare view corrente

Postby A.Piunti » 29 July 2019, 15:17

Si, confermo che in questa maniera funziona.

Grazie.
User avatar
A.Piunti
 
Posts: 317
Joined: 1 January 2015, 13:20


Return to Tips & Tricks - Cloud

Who is online

Users browsing this forum: No registered users and 7 guests