当我的 SPA 初始化时,它必须进行一些需要在加载任何视图之前运行的 ajax 调用。我已将这些放在 shell.js 的激活函数中。在其他视图中,我从激活函数返回这些调用并且一切正常。但在外壳中,我应该从 router.activate 调用返回。如何返回正确的视图并确保进行了这些 ajax 调用?我看到的是数据并不总是加载。
activate: function () {
var query =
$.when(
datacontext.getCurrentUser(),
datacontext.getGroupsAuthorized(),
datacontext.getTeams(),
datacontext.getRoles(),
datacontext.checkPermissions('views.shell')
)
.then(function (s0, s1, s2,s3, s4) {
/* code excluded */
},
function (f0, f1, f2) {
/* code excluded */
}).always( function() {
/* code excluded */
});
return router.activate('welcome');
},
所有的 datacontext 调用看起来都像这样:
getCurrentUser = function () {
return $.ajax({
url: 'api/currentuser/',
type: 'GET'
});
},