Backbone.jsを使用してWebアプリケーションを作成し、すべてのビュー、コレクション、モデルを1つのjsファイルに書き込み、それは成功!Backbone.js:ビュー、コレクション、モデルを別のjsファイルに分割すると、互いに認識できない
今、私は同じように、別のJSファイルにそれらを分けたい:jQueryの負荷の
<script type="text/javascript" src="js/layermanagemodel.js"></script>
<script type="text/javascript" src="js/layermanagecollection.js"></script>
<script type="text/javascript" src="js/layermanageview.js"></script>
<script type="text/javascript" src="js/boot.js"></script>
と負荷モデルコード:
$(function(){
//Model
var manageModel = Backbone.Model.extend({
default:{
'selectedId':'unknow'
},
selectLayer:function(uuid){
this.set({"selectedId": uuid});
},
delLayer:function(){
}
});
})
が、放火犯は私にバグ言う:
manageModel is not defined
[Break On This Error]
model: manageModel
を
コレクションファイル
?別のファイルにそれらを分離場合なぜ、彼らはどのように私はこの問題を解決するか、右ロード順序は何であることができ、互いを認識できなかったあなたは関数ラッパーを追加すると、あなたに
ありがとう、私は質問があります:なぜ私はwindow.app = window.appのような裁判官を行う必要があります|| {}?なぜそれを定義するだけですか? – hh54188
@ hh54188: 'window.app = window.app || 'window.app'がなければ' window.app'を空のオブジェクトにセットし、既に設定されている場合は 'window.app'だけを残します。このようにすると、JavaScriptファイルは自己完結型で、読み込み順序の制約が少なくなります。そして、そこにそれがあることがわかったら、それに物を入れることができます。 'window.app'があなたが本当にグローバルにしたいと思っていることを思い出させるならば、単に' app'を使うことができます。 –