在$('#container').html(view.render().el)
您将view
' 的顶部元素插入您的#container
-element 时,如下所示:
<div id="container">
<div class/id="whatever-your-view-has-defined">
<!-- THIS IS WHERE YOUR VIEW PUTS ANYTHING GOING TO $(this.el) or this.$el -->
</div>"
</div>
因此,当您在视图的相应集合或模型完成获取之前调用渲染时,您可能只是将视图自己的元素插入容器中。现在,当您的集合/模型完成获取并触发 areset
时,视图会再次呈现。我想你的渲染看起来像这样:
render: function() {
// do something with $(this.el) or this.$el
// loop through collection and insert something from each model to the view
// OR
// take the view's model and insert it to the view
// I reckon the inserting is done with templates or jQuery manipulation
//finally
return this; // return this to allow chaining render to other things like calling el
}
这基本上意味着您的第一次渲染将您的视图暂存到 DOM 中,然后调用的渲染将reset
用内容填充它。你可以放弃
$('#container').html(view.render().el)
部分,例如,如果您将视图的id
-property 设置为content
,则视图将自动寻找具有标识符content
的元素作为它的元素。但是随后您的所有视图内容将直接插入到内容元素中。
希望这会有所帮助,如果仍有不清楚的地方,请发表评论!