検索パネルと結果データのコレクションを備えた Marionette CompositeView があります。
次の場合に関数を呼び出したい:
- 検索パネルが表示されます。
- コレクションはまだレンダリングされていません。
- この関数は、コレクションがレンダリングされるときに呼び出されるべきではありません。
私はこのようにしました:(しかし、「afterRender」関数は2回呼び出されます)
// VIEW
App.MyComposite.View = Backbone.Marionette.CompositeView.extend({
// TEMPLATE
template: Handlebars.compile(templates.find('#composite-template').html()),
// ITEM VIEW
itemView: App.Item.View,
// ITEM VIEW CONTAINER
itemViewContainer: '#collection-block',
//INITIALIZE
initialize: function() {
this.bindTo(this,'render',this.afterRender);
},
afterRender: function () {
//THIS IS EXECUTED TWICE...
}
});
これどうやってするの?
==========================編集======================= ===========
私はこの方法で解決しました。観察があれば教えてください。
// VIEW
App.MyComposite.View = Backbone.Marionette.CompositeView.extend({
//INITIALIZE
initialize: function() {
//this.bindTo(this,'render',this.afterRender);
this.firstRender = true;
},
onRender: function () {
if (firstRender) {
//DO STUFF HERE..............
this.firstRender = false;
}
}
});