如何刷新 compositeView Marionette

How to refresh a compositeView Marionette

使用Backbone + Marionette,如何在CompositeView的初始化方法中刷新视图?

这是我的代码:

View.RegionProofUploadView = Marionette.CompositeView.extend({
        template : regionProofsTpl,
        tagName : "div",
        className : "panel panel-default",
        childView : View.ProofUploadView,
        childViewContainer : "div.pieces",
 });

首先,正如我从您的评论中了解到的那样,您需要刷新(或者换句话说重新渲染)您的视图,而不是在初始化时(正如其他人指出的那样没有目的),而是在更改之后事件发生在子模型上。

在这种情况下,您可以使用 marionette.js childEvents 来监听 "change" 事件并对其采取行动。

View.RegionProofUploadView = Marionette.CompositeView.extend({

    childEvents: {
        'change:status': 'onStatusChange',
    },

    onStatusChange: function (model, value, options) {
        this.render();
    },

});

如果子模型状态属性发生变化,这应该(理论上)重新呈现您的复合视图。 让我知道这是否是您所期待的。