6
votes

Backbone JS Routing ne fonctionne pas comme je m'attends

Je pense que je manque des bases sur les fonctions de routage de la colonne vertébrale.

Je construis une application et cela ressemble à quelque chose comme ça:

fichier: app.js xxx

Fichier: contrôleur.js xxx

à ce stade, le navigateur change le URL dans la barre d'adresse à / home mais rien ne se passe et je n'obtiens pas le message à la maison message de console.

J'ai essayé d'utiliser mon propre classe de routage (c.-à-d. backbone.router.extend ({}) ) Mais je ne vois pas vraiment de point qu'il est toujours nécessaire de l'initialiser, et je veux utiliser une histoire centrale / Navigation dans mon application que tous les modules / contrôleurs ajoutent de l'acheminement au lieu de créer un routeur pour chaque contrôleur.

Qu'est-ce que je fais mal?


0 commentaires

3 Réponses :


6
votes

Pour le routage pour fonctionner, vous devez appeler backbone.history.start () après la configuration de vos itinéraires (essentiellement après avoir tout fait tout le reste). Voir: http://documentcloud.github.com/backbone/#history-Start


0 commentaires

15
votes

http://documentcloud.github.com/backbone/#router-navigate

de la documentation: p>

Si vous souhaitez également appeler la fonction d'itinéraire, définissez l'option de déclenchement sur true. p> blockQuote>

Mais comme Ollim a écrit, vous devez activer l'historique d'abord! p>

Donc, votre réponse doit être la suivante: P>

Backbone.history.start();
App.nav.navigate('home', {trigger: true});


2 commentaires

{déclencheur: true} ne fait pas partie de la solution ici. La colonne vertébrale va défier de déclencher: true si aucune option n'est spécifiée. Voici l'extrait de code: Navigate: fonction (fragment, options) {if (! History.starté) renvoie false; Si (! Options || Options === True) Options = {Trigger: !! Options};


Votre lien a 404'd.



1
votes

Je veux juste le signaler comme ça m'a sauvé un monde de blessures et de chagrin d'amour.

Si vous vous acheminez vers une page personnalisée telle que P>

Backbone.router.navigate('/some/page/'); // works


0 commentaires