在我的路由器中,我需要这样的视图:
require(['views/business-detail-view'],
function(BusinessDetailView) {
var businessDetailView = new BusinessDetailView({collection: businessOverviewCollection.models[id], id: id});
businessDetailView.render();
}
);
在视图中,我正在绑定这样的事件:
events: {
'click #about-btn' : 'aboutHandler',
'click #contact-btn' : 'contactHandler',
'click #deals-btn' : 'dealsHandler',
'click #map-btn' : 'mapHandler'
},
现在的问题是,如果第一次渲染视图,则调用回调。但是,如果视图需要在其他地方再次呈现,则回调会被调用两次,依此类推。
我怎样才能防止这种情况,或者我做错了什么?
更新:
与此同时,我已将路由器中的代码更改为:
if ( !businessDetailView ) {
require(['views/business-detail-view'],
function(BusinessDetailView) {
businessDetailView = new BusinessDetailView({collection: businessOverviewCollection.models[id]});
businessDetailView.render();
}
);
}
else {
businessDetailView.collection = businessOverviewCollection.models[id];
businessDetailView.render();
}
这似乎解决了这个问题,但我仍然是新手,知道这是否是一个有效的模式。