2012-04-27 21 views
11

El enrutador en Backbone.js es responsable de enrutar páginas del lado del cliente y conectarlas a acciones y eventos basados ​​en urls. Pero, ¿cómo activar el cambio de URL? Me refiero a si la única forma de hacerlo es adjuntar el elemento asociado al enrutamiento de la página en la etiqueta <a>.Cómo desencadenar el Backbone.Router eventos en Backbone.js?

Debido a que he asociado el mousedown y mouseup con el elemento utilizado para el enrutamiento, si lo pongo en <a> etiqueta, el mousedown y mouseUp eventos definitivamente de ser válida, ya que tendrá conflicto con el evento click del <a> etiqueta. Entonces, ¿hay otras formas de hacer el enrutamiento?

Respuesta

31

Puede utilizar Router#navigate:

navegarrouter.navigate(fragment, [options])

Cada vez que se llega a un punto en su aplicación que desea guardar como una URL, llame navegar con el fin de actualizar la URL Si también desea llamar a la función de ruta, configure la opción activador en true.

Por lo tanto, si el router es r y que desea activar la ruta de #/some_route, a continuación, usted podría:

r.navigate('some_route', { trigger: true }); 

Demo (abrir la consola por favor): http://jsfiddle.net/ambiguous/xkZtB/

+0

Gracias mucho por ¡tu ayuda! – chaonextdoor

+0

Una pregunta más, ya que tengo que acceder a los datos en el modelo para proporcionar la identificación para mi url, como 'category /: id'. ¿Cómo debo hacer eso? – chaonextdoor

+0

@chaonextdoor: Debería poder construir la ruta adecuada como una cadena y pasarla a 'navegar':' r.navigate ('category /' + m.get ('id'), {trigger: true}) ' –

Cuestiones relacionadas