Backbone.js:`extend`未定义?
刚开始使用Backbone.js。 简单地包括Backbone(开发/生产版本)会导致错误:
Uncaught TypeError: Cannot call method 'extend' of undefined
第128行Uncaught TypeError: Cannot call method 'extend' of undefined
:
// 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>
骨干只有硬依赖是Underscore.js在backbonejs脚本之前加载underscorejs脚本
顺序也很重要。 我得到了同样的错误,直到我在backbone.js之前给underscore.js才得到解决。
<script src="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>