@voronin_denis

Как передавать модель во вложенную Marionette.CompositeView?

Есть View которая используется в CompositeView

var ItemView = Marionette.LayoutView.extend({
        tagName: 'tr',
        template: ItemTemplate,
        regions: {
            footer: "#content"
        },
        
        events: {
            'click td': 'showDismiss'
        },

          showDismiss: function () {
            var EmptyV = new DismissViewComposite();

            if (this.footer.hasView())
                this.footer.empty();
            else {
                <this.footer.show(EmptyV);

            }
            EmptyV.render();
        },

        templateHelpers: function () {
            var model = this.model;
            var numberFunc = this.numberFormatter;
            var dateFunc = this.dateFormatter;
         
            return {
                USER_NAME: model.get('USER_NAME'),
                TMC_TYPE_NAME: model.get('TMC_TYPE_NAME'),
                DISMISS_COUNT: model.get('D<code lang="javascript"></code>ISMISS_COUNT'),
                CULTURE_NAME:  model.get('CULTURE_NAME'),
                DATE: dateFunc(model.get('DATE')),
            };
        },


В нее вложен регион с аналогичной структурой, он отображается по клику.
Он так же должен подхватывать данные из модели, но этого не происходит. Вопрос почему ?

var DismissViewComposite = Marionette.CompositeView.extend({
        childView: new DismissView(),
        childViewContainer: "tbody",
        className: 'historyItem',
        emptyView: EmptyView,
        template: DismissTable,

    });

    var DismissView = Marionette.ItemView.extend({
        tagName: 'tr',
        template: DismissItemTemplate,

        templateHelpers: function () {
            var model = this.model;
            var dismisses = model.get('VIEW_TMC_DISMISS_DATA');
            var numberFunc = this.numberFormatter;
            var dateFunc = this.dateFormatter;

            return {
                CLASS_TYPE: "1",
                COUNT_T:    1,
                ITEM_ID:   1
            };
        },
  • Вопрос задан
  • 183 просмотра
Решения вопроса 1
Нужно явно передать модель.
var EmptyV = new DismissViewComposite({
model: this.model
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы