31 votes

Impossible d'appeler 'start' de indéfini lors du démarrage de l'historique backbone.js.

Je reçois Cannot call 'start' of undefined lorsque j'appelle ...

     Backbone.history.start()
 

Lors de l'exécution de certaines vérifications, Backbone renvoie l'objet mais Backbone.history renvoie undefined.

Quelle pourrait en être la cause?

Merci

51voto

Wes Points 7117

Vous disposez de tous les itinéraires sur le contrôleur? Le squelette seul crée l'histoire, au moins une fois une route spécifiée.

Plus:

TypeError: Impossible d'appeler la méthode "start" undefined**

Hmm, pour une raison quelconque de la colonne vertébrale.l'histoire n'est pas défini, et il n'y a pas de méthode de démarrage sur elle. Il s'avère que Backbone.js crée une instance de la colonne vertébrale.L'histoire (en majuscules ‘H') appelé épine Dorsale.l'histoire (en bas cas ‘h') une fois qu'un contrôleur a été créé, qui a au moins un itinéraire indiqué sur elle. Cela est logique, car la gestion de l'historique est à seulement nécessaire si il y a des parcours pour y répondre.

http://tinnedfruit.com/2011/04/26/testing-backbone-apps-with-jasmine-sinon-3.html

10voto

chrisftw Points 101

Je frappe la même erreur.

Cela se produit lorsque vous ne créez pas d'instance du routeur:

 var routerInstance = new blogRouter();
 

6voto

mgadda Points 659

Si vous utilisez CoffeeScript et que votre routeur est défini à l'aide du mot-clé de classe CoffeeScript avec une méthode de constructeur, vérifiez que vous appelez super dans la définition du constructeur. Cela a résolu le problème de Backbone.history étant nul pour moi.

 class AppRouter extends Backbone.Router
  constructor: (options) ->
    super(options)
    # other initialization code
 

6voto

Rok Krulec Points 71

Assurez-vous d'inclure jQuery.js avant underscore.js et backbone.js en tête HTML.

2voto

Chandu Points 48

J'ai fait face exactement au même problème pour une raison différente, après avoir passé quelques heures, je me suis rendu compte qu'une méthode de mon routeur "route": function () est à l'origine du problème, après avoir commenté cette méthode supplémentaire inutile, history.start () a fonctionné comme prévu .

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