web-dev-qa-db-ja.com

Backbone.js:「extend」は未定義ですか?

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, 
103
Matt Darby

問題は、ロードしていないことでしたunderscore.js。ドキュメントでその依存関係を完全に逃しました。ああ。

@tjorriemorrieからのさらなる説明:アンダースコアがありましたが、間違った順序でロードされました。


これが明らかでない場合に備えて、さらなる明確化。 JavaScriptで物が読み込まれる順序は、ページに表示される順序に関連しています。最初にアンダースコアをロードするには、それを含むスクリプトタグがバックボーンをロードする前に来るようにしてください。このような:

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

バックボーンのみの強い依存関係は、Underscore.jsが、backbonejsスクリプトの前にunderscorejsスクリプトをロードすることです

2
Somnath Kokane

順序も重要です。同じエラーが発生しましたが、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>
1
Haris Np