场景是这样的:我有一个collectionView在几个地方使用。我将一些选项传递给 View 以更改某些显示方面(主要是语言),因为到处的行为都完全相同。

我真的很想将此自定义扩展到emptyView,但是我找不到一种方法。似乎没有对collectionView上的emptyView进行引用,并且在定义它之外,我似乎也无法从emptyView访问collectionView

基本上,我希望能够执行以下操作:

var noItemsView = Backbone.Marionette.ItemView.extend({
    tagName: "li",
    className: "no-results",
    template: Handlebars.compile(noResultsTemplate),
}),

leftToggleListView = Backbone.Marionette.CollectionView.extend({
    tagName: "ul",
    className: "left-toggle-view-list",
    emptyView: noItemsView,

    initialize: function() {
        this.emptyView.model.set("name": "some custom name");
    }
});

然后让noItemsView能够在其模板中呈现{{ name }}

除了修改木偶之外,还有什么方法可以做到这一点?

最佳答案

实际上,您可以通过以下方式访问emptyView:

this.children._views[_.keys(this.children._views)[0]];

好像在新版本中,我们将有一个方法可以获取emptyView
https://github.com/marionettejs/backbone.marionette/pull/727

08-08 09:16