2012-02-24 18 views
8

¿Cómo puedo recibir una notificación antes de que un enrutador de Backbone llame a la función de enrutamiento específica?Ejecutar una función antes de cambiar la ruta en Backbone.js

Me gustaría tener una función genérica de "reinicio" antes de representar cada página.

¿Hay algún evento que pueda vincular?

Actualización: las soluciones que encontré se basan en extender el enrutador o el historial para activar el evento.

+0

tengo una solución para este problema en esta respuesta: http://stackoverflow.com/a/16298966/2330244 –

Respuesta

9

Parece que la 1.1.x release de soporte estructural tiene lo que quiere con el método Router.execute:

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

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

Yo estoy usando esto en el constructor y que está funcionando bien

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

Aquí ACL es una función

2

si ejecutar la función está presente se va a llamar antes de cada cambio de ruta, pero debe pasar los argumentos de devolución de llamada para ejecutar correctamente otras rutas coincidentes.

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

Por favor, añadir algunos comentarios acerca de su solución en qué y cómo se soluciona el problema –

Cuestiones relacionadas