ChatGPT解决这个技术问题 Extra ChatGPT

Backbone.js:“扩展”未定义?

刚开始使用 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, 
问题:您是否将它与任何其他 JS 库以及 Backbone 结合使用?您是否尝试过查看没有它们是否仍然出现错误?
这是一个全新的 Rails 应用程序;我什至没有加载 jQuery! :)

J
Juan Cortés

问题是我没有加载 underscore.js。我完全错过了文档中的这种依赖关系。呃。

@tjorriemorrie 进一步澄清:我有下划线,但加载顺序错误,首先加载下划线(猜猜这就是“依赖”的意思:)

进一步澄清以防万一这不明显。在 JavaScript 中加载内容的顺序与页面上显示的顺序有关。要首先加载下划线,请确保包含它的脚本标记位于加载主干之前。像这样:

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

非常感谢,很困惑我做错了什么,为什么我什至无法加载主干!
我有下划线,但加载顺序错误,首先加载下划线(猜猜这就是“依赖”的意思:)
超过 4,600 次观看和 55 次投票后,似乎很多人都没有满足要求。也许它们应该更明显。
@Matt Darby:您能否将 Tjorriemorrie 的评论添加到答案中?
S
Somnath Kokane

Backbone 唯一的硬依赖是 Underscore.js 在backbonejs 脚本之前加载 underscorejs 脚本


H
Haris Np

顺序也很重要。我遇到了同样的错误,直到我在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>