2011-02-02 73 views
101

剛開始使用Backbone.js。簡單地包括骨幹網(無論是開發/生產版本),導致錯誤:Backbone.js:`extend` undefined?

Uncaught TypeError: Cannot call method 'extend' of undefined 128線:

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

問題:你是否將它與任何其他JS庫以及Backbone結合?你有沒有試過看看,如果你還沒有得到它的錯誤? – Spudley 2011-02-02 15:26:29

+0

這是一個全新的Rails應用程序;我甚至沒有加載jQuery! :) – 2011-02-02 15:36:27

回答

211

的問題是,我沒有加載underscore.js。我完全錯過了文檔中的依賴關係。咄。

進一步澄清@tjorriemorrie: 我曾強調,但裝在錯誤的順序,先裝下劃線(猜這是什麼「依賴」的意思:)以防萬一這個ISN


進一步明確不明顯。以JavaScript加載事物的順序與頁面上顯示的順序有關。要首先加載下劃線,請確保包含它的腳本標記位於一個加載主幹之前。就像這樣:

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

骨幹只有硬依賴是Underscore.js 負載之前backbonejs腳本

1

的順序也很重要underscorejs腳本。我得到了同樣的錯誤,直到我在backbone.js之前提供underscore.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>