使用BackBone在视图中获取唯一模型的最佳实践?

时间:2017-02-01 20:25:04

标签: javascript backbone.js

我有以下情况:

  

项目网格> 从网格中选择一个项>使用Item Detail 打开视图。

嗯......

这是初始化ItemDetail模型并将其存储在变量中的最佳做法?

  • 存储在某个全局变量中并重置每个ItemDetail fetch
  • 存储在某个ItemDetailView变量中?

段:

app.ItemDetailView = Backbone.View.extend({

    initialize: function(id){
        app.ItemDetailInstance = new ItemDetail(id);
        //OR
        this.itemDetail = new ItemDetail(id);

        //fetch
    }
}

1 个答案:

答案 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});
    }
})

这是收集和模型的基本用法。 如果您可以获取包含所有模型的全局集合,则只能获取一次,然后使用视图。