Backbone.js: `extend` undefined?
Просто начните работу с Backbone.js. Простое использование Backbone (либо dev/производственные версии) вызывает ошибку:
Uncaught TypeError: Cannot call method 'extend' of undefined
в строке 128:
// Attach all inheritable methods to the Model prototype
_.extend(Backbone.Model.prototype, Backbone.Events,
Ответы
Ответ 1
Проблема заключалась в том, что я не загружал underscore.js
. Я полностью пропустил эту зависимость в документах. Duh.
Дальнейшие разъяснения от @tjorriemorrie:
У меня был знак подчеркивания, но был загружен не в том порядке, первый подчеркивание нагрузки (предположим, что это означает "зависимость":)
Дальнейшее разъяснение на всякий случай это не очевидно. Порядок загрузки вещей в JavaScript связан с порядком отображения на странице. Чтобы сначала загрузить знак подчеркивания, убедитесь, что тег script, включая его, находится перед одной базой загрузки. Вот так:
<script src="underscore-1.4.4-min.js"></script>
<script src="backbone-1.0.0-min.js"></script>
Ответ 2
Тяжелая зависимость от базовой линии - Underscore.js
load underscorejs script перед backbonejs script
Ответ 3
Приказ также важен. Я получил ту же ошибку, и она не была разрешена, пока я не дал underscore.js перед 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>