【发布时间】:2012-09-26 06:06:56
【问题描述】:
在我的应用程序中,我有一个名为 block 的项目,它可以包含并被其他 block 项目包含。为简单起见,假设这些块可以无限嵌套。
我想知道我是否可以创建对应于嵌套块的递归视图。每个视图都将呈现为 DIV,其中包含其子级并位于其父级 DIV?
虽然视图在可以包含的内容方面相似,但它们将从服务器获取的实际内容可能不同。这是一个示例数据:
App.blocks.set('content',[
Em.Object.create({title:"One", id:"1", is_inside:"0"}),
Em.Object.create({title:"Two", id:"2", is_inside:"1"}),
Em.Object.create({title:"Three", id:"3", is_inside:"0"}),
Em.Object.create({title:"Four", id:"4", is_inside:"3"}),
Em.Object.create({title:"Five", id:"5", is_inside:"4"})
])
在本例中,块 1 将呈现为根(假设 0 是根,这意味着不在任何其他块内)。块 2 将在块 1 内呈现,依此类推。
我注意到不久前有人问过similar question,但我对那里的答案不满意。我觉得在 Ember 中必须有一种优雅的方式来实现这一点。
您能否举个例子说明如何在 Ember 中完成此操作?如果没有,任何可以帮助我取得进展和完善我的问题的建议也将不胜感激。
编辑:这是a jsFiddle,我使用一些可以用作起点的初始数据制作。希望在您的帮助下,我可以根据它们的 is_inside 关系使那些 DIVs 嵌套。我已更新帖子以使用这个更简单的示例。
【问题讨论】:
-
您介意添加您目前所拥有的吗?您的模型对象、视图和车把模板会很棒。
-
感谢您及时回复布拉德利。我用一个更简单的例子和一个我们可以用作起点的 jsFiddle 编辑了问题。注意它还没有嵌套,希望你能帮我把它嵌套:)
标签: model-view-controller ember.js