Ma "vue" est configurée comme ci-dessous. simple.
var ItemView = Backbone.View.extend({
tagName : "li",
events : {
"click" : "display"
},
display : function() {
//app.navigate('item'); // take me to my route!
}
});
Et j'ai mon routeur
var App = Backbone.Router.extend({
routes: {
"" : "index",
"item" : "view_item"
},
index: function() {
alert('hi!');
},
view_item: function() {
alert('bye!');
}
});
app = new App();
Backbone.history.start();
Maintenant, quand je clique sur ItemView, il devrait exécuter la méthode "display" et je veux que la méthode d'affichage me conduise à la route que j'ai spécifiée dans routes "item".
Est-ce possible? Je pensais que la fonction "naviguer" fonctionnerait, mais pas. Comment pourrais-je y parvenir?
display : function() {
app.navigate('item', true);
}
Le deuxième paramètre doit être défini sur true.
De la documentation de Backbone:
navigaterouter.navigate (fragment, [triggerRoute]) Chaque fois que vous atteignez un point de votre application que vous souhaitez enregistrer en tant qu'URL, appelez browse pour mettre à jour l'URL. Si vous souhaitez également appeler la fonction route, transmettez triggerRoute.
Ou vous pouvez le faire directement à partir du code HTML, si vous utilisez la balise "<a>".
exemple:
<a href="#item">Show Itens</a>
Cela fonctionne aussi, je préfère cette façon quand bien sûr est possible.