A View обычно ожидает объект с этими атрибутами до его рендеринга:
{ el: '#someelement', model: someModel }
A View также позволяет привязывать события модели к функциям в представлении:
initialize: function() {
this.model.bind('change', this.renderFromModel, this);
},
render: function() {
$(this.el).html(this.template(this.model.toJSON()));
return this;
},
renderFromModel: function() {
var t = _.template($('#some-template').html());
$('item-' + this.cid).html(t(this.toJSON()));
return this;
},
Проблема в том, что в первый раз, когда мы создаем представление для рендеринга, он ожидает объект с моделью в нем; и во второй раз мы визуализируем представление, когда оно вызывается из Модели, это не так. Из-за этого я создаю две функции render().
Есть ли лучший способ достижения рендеринга отдельных элементов, который также может реагировать на события model.change()?