Javascript 同步时未定义主干集合

Javascript 同步时未定义主干集合,javascript,jquery,backbone.js,Javascript,Jquery,Backbone.js,由于某种原因,在获取集合时,集合被设置为未定义。如果我在提取之前记录收集,我实际上会得到以下结果: 如果我在获取之后(当同步事件被触发时)记录它,我将得到未定义 景色 藏品 模型 创造 以下是我创建视图的方式: var gardens = new App.Collections.Gardens(); gardens.fetch(); this.overview = new App.Views.Overview({collection: gardens}); 提前谢谢 在对概览

由于某种原因,在获取集合时,集合被设置为未定义。如果我在提取之前记录收集,我实际上会得到以下结果:

如果我在获取之后(当同步事件被触发时)记录它,我将得到未定义

景色 藏品 模型 创造 以下是我创建视图的方式:

var gardens = new App.Collections.Gardens();
    gardens.fetch();
    this.overview = new App.Views.Overview({collection: gardens});

提前谢谢

在对概览进行赋值之前,您可能需要等待获取返回。否则,在分配时它仍然未定义。使用像“Q”这样的承诺库来防止在异步代码返回之前继续前进。我修复了它,因为我太愚蠢了,忘记了绑定“this”。我通过添加.bindAll.apply(,[this].concat(u.functions(this)))修复了它;在我的视图中。不过谢谢你的帮助。我仍然会创建fetch成功的视图,或者将“async:false”传递给它。
App.Collections.Gardens = Backbone.Collection.extend({

model: App.Models.Garden,
url: Settings.API + "/gardens"

});
App.Models.Garden = Backbone.Model.extend({

defaults:{
    id:"undefined",
    owner_id:"undefined",
    name:"undefined",
    width:"undefined",
    height:"undefined"

}

});
var gardens = new App.Collections.Gardens();
    gardens.fetch();
    this.overview = new App.Views.Overview({collection: gardens});