我有一個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
加載它是一個好主意嗎? 在這種情況下,如何從第一個視圖觸發列表更新?
感謝