underscore template backbonejs javascript backbone.js

javascript - template - Backbone.js: `extend` undefined?



backbonejs github (3)

Backbone only hard dependency es Underscore.js load script underscorejs before backbonejs script

Solo comenzando con Backbone.js. Simplemente incluyendo Backbone (ya sea versiones de desarrollo / producción) causa el error:

Uncaught TypeError: Cannot call method ''extend'' of undefined en la línea 128:

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


El orden también es importante. Obtuve el mismo error y no se resolvió hasta que di el underscore.js antes de 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>


El problema era que no estaba cargando underscore.js . Me perdí totalmente esa dependencia en los documentos. Duh.

Más aclaraciones de @tjorriemorrie: tuve un guión bajo, pero cargado en el orden incorrecto, primer guión de carga (supongo que eso es lo que significa "dependencia" :)

Aclaración adicional en caso de que esto no sea obvio. El orden en que se cargan las cosas en JavaScript se relaciona con el orden en que aparecen en la página. Para cargar el subrayado primero, asegúrese de que la etiqueta del script que lo incluye se encuentre antes de la troncal de carga. Me gusta esto:

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