我有一个带有搜索面板和结果数据集合的 Marionette CompositeView。
我想在以下情况下调用一个函数:
- 呈现搜索面板。
- 该集合尚未呈现。
- 呈现集合时不应调用此函数。
我是这样做的:(但是“afterRender”函数被调用了两次)
// 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;
}
}
});