私のアプリには、それらのレイアウトのレイアウトとビューがあります。レイアウトはログイン/ログアウト時にのみ変更されますが、他の特殊なケースはページロードです。適切なレイアウトをロードする必要があります。しかし、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
};
});
ビューの前にレイアウトを完全にレンダリングするにはどうすればよいですか?