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

Backbone.js: complex views combining multiple models

本文关键字:模型 复杂 视图 js 组合 Backbone      更新时间:2023-09-26

到目前为止,我一直在尝试所有的测试和教程,以获得我脑海中的结构,向我展示视图绑定到一个模型。

假设我有一个小应用程序来存储和管理联系人详细信息(一个地址簿)我有多个用户可以登录他们每个人都有自己的联系人集合。

用户详细信息视图将绑定到用户模型联系人也是一样

但是假设我想显示一个结合这两个的网格X轴显示应用程序中的所有联系人Y轴显示所有用户,

这是如何工作的?我需要为此创建一个新模型来绑定到一个新视图吗?

你懂的,这只是一个理论例子我不是在构建那个应用程序但它是为了让你明白有一个视图组合多个模型的想法

在这种情况下,我会考虑使用您的两个子模型的动态模型。在你的路由处理程序中,你可以这样做:

var model = new Backbone.Model();
model.set({contacts: new ContactsModel(), users: new UsersModel()});
var view = new GridView({model: model});

当然,没有什么可以阻止您分别传入模型:

var contacts = new ContactsModel();
var users = new UsersModel();
var view = new GridView({model: contacts, users: users})

我仍然喜欢第一种方法的复合方法,因为它不会混淆模型是什么。

你也可以考虑合并两个模型,如果你确定它们不使用相同的参数。

var modelA = new myModel({ color: "blue" });
var modelB = new otherModel({ age: 35 });
var superModel = new Backbone.Model();
superModel.set(modelA);
superModel.set(modelB);
console.log("color:", superModel.get("color"));
console.log("age:", superModel.get("age"));

看看Backbone.Model.extend()