我有一个Backbone
视图,我使用Handlebars
在我的视图中加载模板。渲染模板的一部分
我有一个列表#list
在模板中必须在视图中更新,然后它需要重新呈现。 我想重新渲染只有部分已经改变,所以只有#list
没有重新加载我所有的DOM(以及所有我所拥有的Handlebars
助手)。
我尝试这样做:
template: Handlebars.compile(templateHtml),
render: function() {
this.$el.html(this.template(this.model.toJSON());
},
renderList: function() {
var html = this.template(this.model.toJSON());
var selector = "#list";
this.$el.find(selector).replaceWith($(selector, html));
}
但这是非常缓慢的,因为我觉得它重新呈现改变#list
内容,因为我需要之前的所有DOM。
有没有更好的方法来做到这一点?
将#list
的内容放在另一个模板中并将其作为subView
加载它是一个好主意吗? 在这种情况下,如何从第一个视图触发列表更新?
感谢