刚开始使用 Backbone.js。简单地包括 Backbone(开发/生产版本)会导致错误:
Uncaught TypeError: Cannot call method 'extend' of undefined
在第 128 行:
// Attach all inheritable methods to the Model prototype
_.extend(Backbone.Model.prototype, Backbone.Events,
问题是我没有加载 underscore.js
。我完全错过了文档中的这种依赖关系。呃。
@tjorriemorrie 进一步澄清:我有下划线,但加载顺序错误,首先加载下划线(猜猜这就是“依赖”的意思:)
进一步澄清以防万一这不明显。在 JavaScript 中加载内容的顺序与页面上显示的顺序有关。要首先加载下划线,请确保包含它的脚本标记位于加载主干之前。像这样:
<script src="underscore-1.4.4-min.js"></script>
<script src="backbone-1.0.0-min.js"></script>
Backbone 唯一的硬依赖是 Underscore.js 在backbonejs 脚本之前加载 underscorejs 脚本
顺序也很重要。我遇到了同样的错误,直到我在backscore.js 之前给出了backscore.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>