在 Backbone.js 的显示视图中嵌套创建视图

Posted

技术标签:

【中文标题】在 Backbone.js 的显示视图中嵌套创建视图【英文标题】:Nesting a create view inside of a show view in Backbone.js 【发布时间】:2012-01-09 16:06:08 【问题描述】:

好吧,所以我对骨干完全陌生,在任何地方都找不到我的问题的答案。 我使用主干导轨,所以我使用的是 jst 模板系统。我有两个模型,其中一个模型,说 ModelA 可以有多个 ModelB,但 ModelB 只能有一个 ModelA(HasMany 关系)。

我想要实现的是我有一个网页的左右部分,左侧页面始终列出 ModelA,可以说是索引视图,右侧部分从左侧显示当前选择的 ModelA侧面,秀场。右侧部分还列出了 ModelB,并显示了一个表单,用于创建 ModelB 对所选 ModelA 的归属。

 --------------------------------------
|___ModelA list__|  ModelA - 2 details |
|_______1________|                     |
|///////2////////|     ModelB Form     |
|_______3________|                     |
|_______4________|_____ModelB List_____|
|_______5________|__________1__________|
|_______6________|__________2__________|
|_______7________|__________3__________|
|_______8________|__________4__________|

ModelB 列表仅显示属于 ModelA 且 ID 为 2 的 ModelB 对象

所以,我在 ModelA 中添加了类似的东西

initialize: function() 
  this.modelbs = new Appname.Collections.ModelBCollection(this.get("modelbs"));
  this.modelbs.url = this.url() + "/modelbs";

并通过添加解决了ModelA在左侧空间中的列表

this.index()

在所有路由器操作中(例如显示)

所以亿美元的大问题是,A) 如何从 ModelA 中的 show 动作调用路由器动作,比如 ModelB 中的视图?和 B)如何在 ModelA 详细信息部分(显示操作)呈现 ModelB 的表单并将关系添加到 ModelA 并让 ModelB 视图负责保存。

谢谢!

【问题讨论】:

你能再贴一些代码吗?无论哪种方式:看看模型A的render方法,放入模型B的视图逻辑,initialize模型B的视图与具体的模型B实例。 【参考方案1】:

你要找的是子视图。

您可能对此感兴趣:http://ricostacruz.com/backbone-patterns/#sub_views

【讨论】:

虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。

以上是关于在 Backbone.js 的显示视图中嵌套创建视图的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Backbone.Js 创建嵌套模型

如何使用backbone.js 路由器切换视图?

Backbone.js:在视图之间导航 - 销毁和重新创建

Backbone.js:查看状态和路由

如何在 Backbone.js 中设置视图的 id?

Backbone.js 单个集合项视图