模型和集合到 Backbone 中的一个视图

Posted

技术标签:

【中文标题】模型和集合到 Backbone 中的一个视图【英文标题】:model and collection to one view in Backbone 【发布时间】:2013-02-26 12:29:57 【问题描述】:

作为 Backbone.js 的新手,我想问一个普遍而简单的问题。在我的应用程序中,我需要创建一个新视图,其中包含一个集合和一个模型。

var myView = new SomeView(
    model: myModel,
    collection: myCollection,
    el:$('#main_content'));
);

有趣的是,我把我的东西弄好了。你认为它是否适合骨干的概念,还是什么?

谢谢你..

【问题讨论】:

将模型和集合提供给视图没有任何问题。但是,我会对整体架构持怀疑态度。为什么视图需要模型和集合?在大多数情况下,拆分视图会更好。 【参考方案1】:

没有理由不能这样做,但这有点令人困惑。通常,您可以从视图的名称推断模型或集合的类型。例如,EmployeeListViewcollection 可能是 EmployeeCollectionmodelCompanyView 很可能是 Company

但是当你同时有一个模型和一个集合时,意思就不清楚了。在这种情况下,我会更有意义地命名参数。 modelcollection 属性只是约定 - 骨干视图也不需要。

假设您有一个显示Company 的视图,它是Employees:

var CompanyEmployeesView = Backbone.View.extend(
  initialize: function(options) 
    this.company = options.company;
    this.employees = options.employees;
  
);

var view = new CompanyEmployeesView(
  company: company,
  employees: employeesCollection
);

【讨论】:

以上是关于模型和集合到 Backbone 中的一个视图的主要内容,如果未能解决你的问题,请参考以下文章

在 Backbone 应用程序中,按照惯例,模型、视图和集合的工作是啥

Backbone.js:组合多个模型的复杂视图

Backbone.js 中的命名空间

如何使用模型/集合获取 4 个 JSON (API) 响应到主干.js 中的一个视图

Backbone.js 将两个不同的模型添加到同一个集合中

在主干中渲染集合模型