在我的应用程序中,我为这些布局提供了布局和视图。布局仅在登录/注销时发生变化,但另一种特殊情况是在页面加载中,我需要加载正确的布局。然而,在我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