【发布时间】:2011-07-03 03:33:03
【问题描述】:
我有一个简单的backbone.js 应用程序。我想将视图呈现到 HTML 页面的 DOM 中,该视图是模型的详细视图。我的 HTML 页面已经有我想要呈现视图的 DIV 元素。如果我尝试像这样呈现我的视图:
detailView = new RulesPanelView({model : @model})
$("#detail").html(detailView.render().el)
它失败了,我将 [Object HTMLDivElement] 插入 DOM,而不是我渲染的 HTML。
这是我让它工作的唯一方法,它看起来像一个 hack:
$("#detail").html('')
detailView = new RulesPanelView({model : @model})
$("#detail").append(detailView.render().el)
在渲染之前必须清空 DIV 的 HTML,这样我就不会在 #detail 中渲染多个视图,这就是 append 会发生的情况。
我这样创建的视图是不是太多了,只是在第一个代码段中替换 HTML 看起来更干净吗?
渲染这个视图的正确方法是什么?
【问题讨论】:
-
第一个代码段应该可以正常工作,因为这就是我在控制器中设置东西的方式。
$('#content').html(currentView.render().el)。 Arthur Debert 的解决方案也应该有效。你能给我们看看 RulesPanelView 的代码吗?
标签: backbone.js zepto