将集合从CompositeView传递到CollectionView

时间:2014-05-07 13:40:37

标签: marionette

我正在渲染一个包含多行内容的表以及一组按钮按钮,其按钮数量可根据状态而变化。以下是整体观点关系。

overall views relationship

问题是CompositeView(行)不能将Backbone.Collection传递给CollectionView(按钮)。

Row.Main = Marionette.CompositeView.extend ({
    template : template,
    tagName  : 'tr',
    itemView: app.Row.Buttons.Main,
    itemViewContainer: '#buttons',
    itemViewOptions: {
       collection: this.collection
    }
    initialize: function () {
        this.collection = app.request ('buttons:entities');

    }
});

按钮

Buttons.Main = Marionette.CollectionView.extend ({
    itemView: app.Row.Button.Main,

    initialize: function (options) {
        console.log ('options: %o', options);
        // this.collection = app.request ('buttons:entities'); 
    };
});

在按钮中,options.model包含来自行集合的模型,但options.collection始终未定义。

如果我在按钮中取消注释this.collection = app.request ('buttons:entities'),我会得到4行按钮组,它应该只显示1行按钮组:

enter image description here

想知道如何将集合从CompositeView传递到CollectionView?还是有更好的方法?

Marionette ver 1.8.0。感谢。

0 个答案:

没有答案