Возвратите взаимозависимые асинхронные обещания в $ routeProvider resol

Рассмотрим код:

var myApp = angular.module('myApp', []);

Маршруты:

myApp.config(['$routeProvider', function($routeProvider) {
        $routeProvider.when('/', {
            templateUrl: 'app.html', 
            controller:myAppController, 
            resolve:{
                resolveData:function(Resolver){
                    return Resolver();
                }
            }
        });
    });

Разрешить:

myApp.factory('Resolver', ['$http', function($http){
    return function(){
        return $http({url: '/someurl',method: "GET"}).then(function(data) {

            // dependent call 1
            $http({url: '/someotherurl',method: "GET" }).then(function(data) {

            });

            // dependent call 2
            $http({url: '/someanotherurl',method: "GET" }).then(function(data) {

            });
        });
    }
}]);

Выше я вложил 2 вызова в один, поскольку они зависят от данных, возвращаемых родительским вызовом.

Что я хочу сделать: вернуть Resolver, когда все они завершены, а не только родительский вызов.

Я не могу использовать $ q.all (), потому что 2 вызова зависят от первого вызова.

Короче говоря, myAppController должен быть загружен только после того, как все 3 вызова завершены.

Ответы на вопрос(2)

Ваш ответ на вопрос