2012-02-24 16 views
8

Come posso ricevere una notifica prima che un router Backbone chiami la funzione di routing specifica?Eseguire una funzione prima di modificare il percorso in Backbone.js

Mi piacerebbe avere una funzione di "reset" generica prima di rendere ogni pagina.

C'è qualche evento che posso legare?

Aggiornamento: le soluzioni che ho trovato si basano sull'estensione del router o sulla cronologia per attivare l'evento.

+0

ho una soluzione per questo problema in questa risposta: http://stackoverflow.com/a/16298966/2330244 –

risposta

9

Sembra che il 1.1.x release di Backbone ha ciò che si desidera con il metodo Router.execute:

MyRouter = Backbone.Router.extend({ 
    routes: {}, 

    // fired before every route. 
    execute: function(callback, args) { 
    // ... 
    } 
}); 
0

io' sto usando questo nel costruttore e che sta funzionando benissimo

questo. bind ("all", this.ACL);

Qui ACL è una funzione

2

se eseguire la funzione è presente verrà chiamato prima di ogni cambiamento percorso, ma si deve passare gli argomenti in callback per eseguire correttamente altre vie corrispondenti.

MyRouter = Backbone.Router.extend({ 
     routes: {}, 

     // fired before every route. 
     execute: function(callback, args, name) { 
     //your logic 
     if (callback) callback.apply(this, args); //this must be called to pass to next route 
     }, 
    }); 
+0

prega di aggiungere alcuni commenti circa la vostra soluzione sul perché e come si risolve il problema –

Problemi correlati