web-dev-qa-db-fra.com

Backbone.js: `extend` indéfini?

Je viens de commencer avec Backbone.js. L'inclusion de Backbone (soit les versions de développement/production) provoque l'erreur:

Uncaught TypeError: Cannot call method 'extend' of undefined sur la ligne 128:

// Attach all inheritable methods to the Model prototype
_.extend(Backbone.Model.prototype, Backbone.Events, 
103
Matt Darby

Le problème était que je ne chargeais pas underscore.js. J'ai totalement raté cette dépendance dans les documents. Duh.

Précision supplémentaire de @tjorriemorrie: J'ai eu un soulignement, mais chargé dans le mauvais ordre, premier chargement de soulignement (devinez c'est ce que signifie `` dépendance '' :)


Précision supplémentaire au cas où cela ne serait pas évident. L'ordre de chargement des éléments en JavaScript est lié à l'ordre d'affichage sur la page. Pour charger le trait de soulignement en premier, assurez-vous que la balise de script, y compris celle-ci, précède celle de chargement. Comme ça:

<script src="underscore-1.4.4-min.js"></script>
<script src="backbone-1.0.0-min.js"></script>
216
Matt Darby

Seule la dépendance matérielle du backbone est Underscore.js charger le script underscorejs avant le script backbonejs

2
Somnath Kokane

L'ordre est également important. J'ai eu la même erreur et elle n'a été résolue que lorsque j'ai donné le underscore.js avant backbone.js.

<script src="http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.3.3/underscore-min.js" type="text/javascript"></script>
  <script src="http://cdnjs.cloudflare.com/ajax/libs/backbone.js/0.9.2/backbone-min.js" type="text/javascript"></script>
1
Haris Np