ВопросКак перенести подвиды жизненный цикл обязанностей от MyView
к Marionette
? (См код ниже)Как перенести подвиды жизненный цикл обязанности марионеток
Проблема здесь состоит в том, что items
массив формируется динамически на сервере, и я не хочу, чтобы перебирать их в MyView
. Нужно ли мне Marionette.CollectionView
?
Код:
У меня есть my-view.hbs
шаблон:
{{#each items}}
<button class="button">name</button>
<div name="target"/> <!-- each target div should contain a subview -->
{{/each}}
И вид, который делает это:
var MyView = Marionette.LayoutView.extend({
template: Templates['my-view.hbs'],
render: function() {
var items = [ //actually they come from server
{name: 'car'},
{name: 'bike'},
{name: 'skiboard'},
];
this.$el.html(
this.template({ items: items })
);
this.renderSubViews();
return this;
},
/**
* It creates, renders and append subViews manually.
* TODO: move responsibilities to Marionette
*/
renderSubViews: function() {
var self = this;
self.subViews = [];
self.$('div[name=target]').each(function(index, subViewContainer) {
var subView = new SubView();
self.subViews.add(subView);
subView.render();
$(subViewContainer).append(subView.$el);
});
}
});
спасибо для быстрого ответа! Также как передать дополнительные параметры из родительского представления в конструктор дочернего представления? –
с использованием 'childViewOptions' - http://marionettejs.com/docs/v2.4.1/marionette.collectionview.html#collectionviews-childviewoptions. – Evgeniy