hh5*_*188 5 javascript jquery backbone.js
我使用Backbone.js创建一个Web应用程序,将所有视图,集合和模型写入一个js文件,它成功了!
现在我想将它们分成不同的js文件,就像:
<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>
Run Code Online (Sandbox Code Playgroud)
并在jquery load中加载模型代码:
$(function(){
//Model
var manageModel = Backbone.Model.extend({
default:{
'selectedId':'unknow'
},
selectLayer:function(uuid){
this.set({"selectedId": uuid});
},
delLayer:function(){
}
});
})
Run Code Online (Sandbox Code Playgroud)
萤火虫告诉我bug:
manageModel is not defined
[Break On This Error]
model: manageModel
Run Code Online (Sandbox Code Playgroud)
在集合文件中
为什么如果将它们分成不同的文件,它们无法识别对方?我怎样才能解决这个问题?或者什么是正确的加载顺序?谢谢
添加函数包装器后:
$(function() {
// ...
})
Run Code Online (Sandbox Code Playgroud)
您已经引入了新的范围,并且var这些函数中声明的所有内容仅在这些函数中可见.你可以通过使它们全局(即属性window)来解决这个问题:
$(function(){
window.manageModel = Backbone.Model.extend({
//...
});
});
Run Code Online (Sandbox Code Playgroud)
或更好,引入应用程序命名空间:
$(function(){
window.app = window.app || { };
window.app.manageModel = Backbone.Model.extend({
//...
});
});
Run Code Online (Sandbox Code Playgroud)
然后是指贯穿东西app一样app.manageModel:
$(function(){
window.app = window.app || { };
window.app.someCollection = Backbone.Collection.extend({
model: app.manageModel,
//...
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5105 次 |
| 最近记录: |