在我的應用程序中,我爲這些佈局提供了佈局和視圖。佈局僅在登錄/註銷時發生變化,但另一種特殊情況是在頁面加載中,我需要加載正確的佈局。然而,在我defaultAction
我的佈局實際上並不使其返回,所以當視圖試圖渲染之後,el
它應該包含在不存在。骨幹視圖不按順序呈現
// Filename: router.js
var app_router;
define([ 'views/layouts/beta', 'views/beta/requestInvite', 'views/beta/login', 'views/app/dashboard' ],
function(betaLayout, requestInviteView, loginView, dashboardView) {
var AppRouter = Backbone.Router.extend({
routes : {
// Pages
'login' : 'login',
'dashboard' : 'dashboard',
// Default
'*actions' : 'defaultAction'
},
// Pages
login : function() {
loginView.render();
},
dashboard : function() {
dashboardView.render();
},
// Default
defaultAction : function(actions) {
betaLayout.render();
requestInviteView.render();
}
});
var initialize = function() {
app_router = new AppRouter;
$('a').live('click', function() {
var href = $(this).attr('href');
// only navigate to real links
if(href == undefined)
return;
app_router.navigate(href, {trigger: true});
return false;
});
Backbone.history.start({pushState: true});
};
return {
initialize : initialize
};
});
我怎麼能有我的佈局,我的觀點之前完全呈現?
我想,在第一,但事實證明,佈局已經呈現,但認爲已經初始化之前** **,所以'el'是空的。 – Garrett
啊,所以你在'requestInviteView'的'initialize'期間操作'betaLayout'的'el'?由於它看起來像是從所需文件中返回一個實例,請嘗試[order!插件](http://requirejs.org/docs/1.0/docs/download.html#order)(如果您使用的是RequireJS 1.0)來強制文件執行並按照正確的順序進行初始化。 否則,如果可能,操作代碼轉移到'requestInviteView'的'render',這樣,當它的執行,你可以明確控制。 – freejosh