在我的路由器我需要這樣一個觀點:骨幹RequireJS和delegateEvents
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'
},
現在的問題是,如果視圖在第一次被回調被調用時呈現。但是如果視圖需要在其他地方再次渲染,則會調用兩次回調等等。
我該如何防止這種情況或我做錯了什麼?
UPDATE:
在此期間我已經改變了代碼在我的路由器:
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();
}
這似乎解決了這個問題,但我仍然對新的骨幹這一知道這是否是一種有效的模式。
你究竟用「被調用兩次」是什麼意思。 「正常」渲染不會調用回調。請分享完整的代碼。 – schacki