1

私の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'
       });
   },
4

2 に答える 2