Backbone中的get
函数似乎没有成功回调。有没有办法在下面的代码中延迟创建视图,直到我确定self.restaurant
存在?
self.restaurant = app.collections.restaurants.get(id);
this.showView( '#main', new app.Views.RestaurantDetailView({model: self.restaurant }) );
我可以这样做
if (self.restaurant){
this.showView( '#main', new app.Views.RestaurantDetailView({model: self.restaurant }) );
}else{
}
但如果self.restaurant不存在,那么我最终会做一些尴尬的事情来使其发挥作用。我认为必须有一个简单的解决方案,我不知道这个问题。
答案 0 :(得分:0)
我不是使用id调用get集合,而是使用id创建一个新模型,然后在模型上调用fetch。 Fetch成功回调,因此在创建视图
之前没有等待查询完成的问题 var restaurant = new app.Models.Restaurant({ id: id });
var self = this;
restaurant.fetch({
success:function () {
self.showView( '#restaurants', new app.Views.RestaurantDetailView({model: restaurant}) );
}
});