30 votes

Backbone.js - navigation vers un itinéraire après l'événement "clic" sur une vue

Ma "vue" est configurée comme ci-dessous. Facile.

 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, lorsque je clique sur ItemView, il devrait exécuter la méthode "display" et je veux que la méthode d'affichage m'emmène vers l'itinéraire que j'ai spécifié dans routes "item".

Est-ce possible? Je pensais que la fonction "naviguer" fonctionnerait, mais ce n'est pas le cas. Comment pourrais-je y parvenir?

49voto

Skylar Anderson Points 3485
  display : function() {
    app.navigate('item', true);
  }
 

Vous devez définir le second paramètre sur true.

De la documentation Backbone:

navigaterouter.navigate (fragment, [triggerRoute]) Chaque fois que vous atteignez un point de votre application que vous souhaitez enregistrer en tant qu'URL, appelez naviguer afin de mettre à jour l'URL. Si vous souhaitez également appeler la fonction route, passez triggerRoute.

0voto

rcarvalho Points 509

Ou vous pouvez le faire directement depuis html, si vous utilisez la balise "<a>".

exemple:

 <a href="#item">Show Itens</a>
 

Ça marche aussi, je préfère cette façon quand bien sûr c'est possible.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X