Backbone.Marionette - 将变量传递给复合视图标记

sna*_*ies 0 backbone.js marionette

UPDATE(RELEVANT DETAIL):此复合视图位于复合视图的集合中.

如何使用Backbone.Marionette复合视图构造以下HTML?

    <optgroup label="Group 1">
        <option>Item 1</option>
        <option>Item 2</option>
        <option>Item 3</option>
    </optgroup>
    <optgroup label="Group 2">
        <option>Item 4</option>
        <option>Item 5</option>
        <option>Item 6</option>
    </optgroup>
Run Code Online (Sandbox Code Playgroud)

由于我想避免使用<div>包装器,因此我必须指定<optgroup>为tagName.

view = Backbone.Marionette.CompositeView.extend({
    collection: some_collection,
    itemView: some_itemview,
    template: '#some_template', <!-- What goes inside the template? -->
    itemViewContainer: 'optgroup',
    tagName:'optgroup', <!--specify to avoid the default div-->

    <!-- What should I specify in order to pass label="Group1" to the optgroup tag-->
});
Run Code Online (Sandbox Code Playgroud)

Der*_*ley 5

不要使用CompositeView.您不需要包装器模板,因为在这种情况下包装器只是<optgroup>标签.

请改为使用CollectionView,它不会呈现包装器模板.

对于组#,请使用onRender方法


view = Backbone.Marionette.CollectionView.extend({
    collection: some_collection,
    itemView: some_itemview,
    tagName:'optgroup',

    onRender: function(){
      this.$el.attr("label", "Group 1");
    }

});
Run Code Online (Sandbox Code Playgroud)