Марионетка: Как добавить LayoutView в виде строки в таблицу CompositView?

Я создаю таблицу с помощью Backbone.js и Marionette.js. Моя коллекция моделей создает строки в таблице, которые вставляются в <tbody>,

Я хочу прикрепить одну строку вверху таблицы, которая не является частью моей коллекции. Это определено ранее LayoutView,

Обычно я просто добавляю другой регион, но поскольку я работаю с таблицей, я не могу добавить дополнительный divк tbody как стол выплюнет его из стола, так как его не <tr> в пределах <tbody>,

Ниже моя попытка построить это в моем onShow Функция CompositView:

var SetAllTargets = Backbone.Marionette.LayoutView.extend({
    template: JST["common/cubes/table/set-all-rows"],
    tagName: "tr",
    className: "set-all-targets"
});


App.Table = Marionette.CompositeView.extend({

    template: JST["common/targets/layout"],
    className: "targets",
    childView: RowTarget,
    childViewContainer: "tbody",

    regions: {
        targetsRegion: ".targets-region"
    },

    onShow: function() {
        var setAllTargetsRow = new SetAllTargets();
        var setAllTargetsRegion = "<tr class='target set-all-targets'></tr>";
        this.$el.find("tbody").prepend(setAllTargetsRegion);
        this.$el.find(".set-all-targets").show(setAllTargetsRow);
    }
)};

Еще одна попытка была поставить

<tr class='target set-all-targets'> ...child elements here </tr>

в шаблон и прикрепить view.el в моем onShow функционировать так:

    onShow: function() {    
        var setAllTargetsRow = new SetAllTargets();
        this.$el.find("tbody").prepend(setAllTargetsRow.el);
    }

Но это приводит только к HTML <tr class='target set-all-targets'></tr> помещается в верхнюю часть таблицы, но ни один из дочерних элементов.

1 ответ

Решение

Вы можете использовать CollectionView.addChild метод в вашем композите, чтобы вставить что-то перед отображением вашей коллекции:

onBeforeRenderCollection: function() {
    this.addChild(null, <View>, 0);
}

Посмотрите эту скрипку для примера в действии.

Другие вопросы по тегам