0
我的問題有很多類似的答案,但沒有我想要的。我的問題是: 我在骨幹路由器中呈現視圖。一個屏幕是用三個視圖構建的,由於渲染是異步的,我將每個視圖添加到#content元素,所以我無法控制渲染元素的順序。有任何想法嗎?我不想在其他視圖中混合顯示視圖。我想在路由器類中控制它。骨幹多視圖渲染棧?
我的問題有很多類似的答案,但沒有我想要的。我的問題是: 我在骨幹路由器中呈現視圖。一個屏幕是用三個視圖構建的,由於渲染是異步的,我將每個視圖添加到#content元素,所以我無法控制渲染元素的順序。有任何想法嗎?我不想在其他視圖中混合顯示視圖。我想在路由器類中控制它。骨幹多視圖渲染棧?
沒有看到你的代碼,你做了幾件事情。如果您想放入Marionette.js,您可以使用事件讓路由器知道它何時呈現它。
App = new Marionette.Application(); // somewhere before you initialize your rotuer
// in your router
var viewsToRender = 3;
var view1El = new View({model: someModel}).render().el;
var view2El = new View({model: someModel2}).render().el;
...
App.vent.on('viewRendered', function() {
viewsToRender -= 1;
if(viewToRender === 0) {
$('#content').append(view1El, view1E2, ...);
}
});
// In your views
onRender: function() {
App.vent.trigger('viewRendered');
}
onRender文檔
或者你可以將你的異步數據讀取的你的意見之外,進入路由器(我可能會走的路線)。
問題是我幾乎完成了我的項目,我不想將它重構成使用Marionete。下次我會使用Marionete,但是我現在需要在沒有它的情況下解決這個問題。沒有任何骯髒的黑客。感謝你的回答。 – gorgi93