Ich habe eine Marionette CompositeView mit einem Suchfeld und die Sammlung von Ergebnisdaten.Nach Render-Ereignis auf CompositeView mit Backbone.Marionette
Ich möchte eine Funktion aufzurufen, wenn:
- das Suchfeld gerendert wird.
- Die Sammlung wird noch nicht gerendert.
- Diese Funktion sollte nicht aufgerufen werden, wenn die Sammlung gerendert wird.
ich es auf diese Weise tat (aber „afterRender“ -Funktion zweimal bekommen genannt)
// 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...
}
});
Wie kann ich das tun?
========================= EDIT ====================== ==============
Ich löste es auf diese Weise, wenn Sie eine Beobachtung haben, lass es mich wissen.
// 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;
}
}
});
Bitte geben Sie einige weitere Details über Ihre Ereignisbindungen und wenn reneder – schacki
genannt wird Es ist in der Funktion initialize: „this.bindTo (this, 'render', this.afterRender) ". Ich bin mir nicht sicher, ob das richtig ist, aber was ich tun will, ist die Funktion "afterRender" aufzurufen, sobald die Ansicht gerendert wurde. –