2

resolve メソッドの変数の 1 つに別の変数の依存関係があります。resolve メソッドの変数間で同じ約束を共有することは可能ですか?

$route.current.locals は解決された変数を格納しているようですが、var2 が処理されると、var1 がまだ解決されていないため、$route.current.locals は null になります。私がしようとしているのは、次のようなものです:

$routeProvider.when('/report/:ruleId', { resolve: {
    var1: ['$route', 'service', function ($route, service) {
        return service.getRequest();
    }],
    var2: ['$route', 'service', function ($route, service) {
        return service.getAnotherRequest($route.current.locals.var1.id);
    }]
}});
4

2 に答える 2

4

これがうまくいくことを願っています:

$routeProvider.when('/report/:ruleId', { resolve: {
    vars: ['$route', 'service','$q' function ($route, service) {
        var defer = $q.defer(),
        data = [];
        service.getRequest().then(function(firstResponse){
            data.push(firstResponse);
            service.getAnotherRequest(firstResponse.id).then(function(secondResponse){
                data.push(secondResponse);
                defer.resolve(data);
            });
        })

        return defer.promise;

    }],

}});
于 2014-09-02T15:15:09.010 に答える