将Marionette CollectionView包装在另一个元素中

时间:2014-06-10 20:14:16

标签: jquery backbone.js marionette

我想在一个span标签中包装一个Backbone / Marionette CollectionView,这样我就可以为SELECT元素设置样式。

当我尝试:

        ProductOptionsView: Marionette.CollectionView.extend({
        tagName: 'select',
        className: 'prod-options',
        itemView: self.views.ProductOptionsItemView,

        onRender: function() {
            var $option = $('<option data-price="' + self.currentBasePrice + '" value="-1">Select an option</option>');
            this.$el.attr('id', 'options-select');
            this.$el.wrapAll('<span class="sold" /');
<snip~>

对wrapAll()的调用并没有发生。如果我可以直接将所有样式应用于选择标记,我会,但不支持。我无法在Marionette或Backbone文档中找到任何内容,以显示如何修改从视图中实际输出的HTML。

或者,如果可以将标记名设置为&#39; span&#39;然后用它下面的选项构建一个选择,我可能会这样做。

1 个答案:

答案 0 :(得分:2)

尝试onShow,因为在将onRender视图添加到DOM之前调用el

view.el被附加到DOM,因此将其包装在onRender中实际上不会做任何事情。