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,
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>
Seule la dépendance matérielle du backbone est Underscore.js charger le script underscorejs avant le script backbonejs
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>