我有以下情况:
项目网格> 从网格中选择一个项>使用
Item Detail
打开视图。
嗯......
这是初始化ItemDetail
模型并将其存储在变量中的最佳做法?
fetch
?ItemDetailView
变量中?段:
app.ItemDetailView = Backbone.View.extend({
initialize: function(id){
app.ItemDetailInstance = new ItemDetail(id);
//OR
this.itemDetail = new ItemDetail(id);
//fetch
}
}
答案 0 :(得分:0)
您是否使用Backbone集合来获取所有项目?
Backbone的问题是没有真正好的做法,因为你对你的架构完全免费。但我认为你应该在创建ItemDetailView之前获取模型。
如果您使用集合:
app.listItemsView = Backbone.View.extend({
initialize: function() {
// You fetch the collection once
// This collection contain all items models
this.collection = collection.fetch();
},
onItemClick: function(id) {
// Get the id or cid of a specific item
var model = this.collection.get(id);
// Model object already contain data of the model
var view = new ItemDetailsView({model: model});
}
})
这是收集和模型的基本用法。 如果您可以获取包含所有模型的全局集合,则只能获取一次,然后使用视图。