我的意思是,元素必须在视觉上组合在一起。
从数据的角度来看,我在服务器上有一个名为Accounts的表,它包含环境信息,例如用户所在的页面,它们的名称,图片的位置以及其他一小部分信息,直观地浏览一页应用程序。
然而,每行数据代表一个模型,我想要一个1到1的地图到视图。
这是数据的逻辑分组,但不是可视化分组。
这是O.K吗?
答案 0 :(得分:2)
Backbone视图通常管理一个DOM元素,并采用一个模型。你可以让它们工作,但这不是一个好主意。当您的模型与项目中的名词对齐时,这很好,但这不是必需的。在这种情况下,听起来你的Accounts
表主要与User
模型对齐 - 它具有类似名称,头像等属性 - 即使它确实附加了一些额外的元数据。我认为这会很好地转化为Account
模型。
但是,我建议不要坚持模型和视图之间的一对一映射。 Backbone的一大好处是,您可以通过多种不同方式在应用中显示相同的数据,Backbone将使它们保持最新状态。而不是试图构建一个管理整个页面的巨型视图,最好将Backbone视图视为“部分”或小组件,它们做得很好。通常使用Backbone router来转换页面的状态,并且您可能有一些具有 no 模型的Backbone视图,并且只是渲染一堆子视图。
例如,您可以使用NavBarView
获取Account
模型并显示页眉。它可以显示一个带有用户名称的下拉菜单。图片,添加自定义“«返回上一页”链接,并根据用户是否是管理员显示/隐藏一些链接。您还可以拥有一个EditAccountView
,让用户可以更新自己的姓名和名称。图片;它具有相同的Account
模型,但是以编辑形式显示用户数据。两个视图,但相同的模型 - 如果NavBarView
正在模拟模型上的change
事件,它将自动为您更新页眉。