У меня есть вид Backbone
, и я использую Handlebars
для загрузки шаблонов на мой взгляд.Render parts of template
У меня есть список #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));
}
, но это очень медленно, потому что я думаю, что это вновь делает все DOM до изменения #list
содержания, как мне нужно.
Есть ли лучший способ сделать это?
Это хорошая идея поместить содержимое #list
в другой шаблон и загрузить его как subView
? В этом случае, как я могу инициировать обновление списка из моего первого представления?
Благодаря