6

私はマリオネットを使用しLayout .showてレンダリングを行っていますが、すべての子がレンダリングを終了したCollectionViewことを検出する方法があるかどうか疑問に思っていましたか?ItemView

私のコードの簡略版は次のとおりです。

レイアウト

Layouts.Group = Backbone.Marionette.Layout.extend({

    template: Templates.group,

    ...

    regions: {
        header: ".group-header"
        details: ".group-details"
    },

    ...

});

CollectionView

Views.GroupDetail = Backbone.Marionette.CollectionView.extend({

    itemView: groupDetailRow,

    ...

    onRender: function () {

        // do something here after rendering *all* groupDetailRows of information for group detail section

    }

});

ItemView

Views.GroupDetailRow = Backbone.Marionette.ItemView.extend({

    onRender: function () {

        // single groupDetailRow of information

    }

});

。公演

var details = new Views.GroupDetail();

details.show(new DV.Time.Views.GroupDetail());

私はドキュメントで関数の言及があることに気づきました.done

new MyCollectionView().render().done(function(){
  // all of the children are now rendered. do stuff here.
});

これを?で使用することは可能Layoutですか?

4

1 に答える 1

2

「render」イベントをリッスンするか、ビューで「onRender」コールバック関数を提供できます。


MyView = Marionette.CollectionView.extend({

  onRender: function(){
    // the list of items has been rendered. do stuff here
  }

});

var view = new MyView();

view.on("render", function(){
  // the list of items has been rendered. do stuff here
});

https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.collectionview.md#render--onrender-event

于 2012-11-23T13:23:48.863 に答える