私のSPAが初期化されるとき、ビューがロードされる前に実行する必要があるいくつかのajax呼び出しを行う必要があります。これらを shell.js の activate 関数に配置しました。他のビューでは、これらの呼び出しを activate 関数から返し、すべて正常に動作します。しかし、シェルでは、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'
});
},