2015-01-08 11 views
5

Ho una pagina modulo e voglio avvisare l'utente se lo lascia senza salvare il modulo. In genere, posso raggiungere questo scopo affermando una funzione window.onBeforeUnload.Come impedire la navigazione verso un'altra pagina nel router di ferro meteorico

window.onBeforeUnload = function(){return 'Please save the form before navigating';} 

Ma sembra non funzionare nel mio progetto utilizzando Meteor e Iron Router. Qualche suggerimento?

+1

"Un'altra pagina" = "un percorso diverso sul tuo sito web" o "una pagina su un altro sito web"? –

+0

dove stai aggiungendo'''window.onBeforeUnload = function() {return 'Per favore salva il modulo prima di navigare';} '' '? – MurWade

+0

@ PeppeL-G Un'altra pagina è un'altra rotta ancora nel mio sito web. – aladine

risposta

1

Questa è forse una versione hacky, ma funziona:

isUnsaved = -> 
    return unless @ready() 
    unless confirm 'Do you really want to leave the page?' 
    Router.go(@url) 

Router.onStop isUnsaved, 
    only: [ 
    'editPost' 
    ] 
1

Vecchio post, ma appena risolto. Ecco la mia soluzione:

Router.route('/myPath', { 
    unload: function (e, obj) { 
     if(Session.get("hasChanged")){ 
      if (confirm("Are you sure you want to navigate away ?")) { 
       // Go and do some action 
      }else{ 
       // Redirect to itself : nothing happend 
       this.redirect('/myPath'); 
      } 
     } 
    } 
} 
Problemi correlati