ui路由器解析取决于其他解决方案

时间:2017-04-11 13:46:43

标签: angularjs

我在州内得到了这个决心

首先我将test变为变量,然后我想获取test2变量,但为了获得test2,我必须等待test试。

有更聪明的方法吗?

谢谢

resolve: {
        one: function (test) {
            return test.gettest().$promise.then(data => {
                return data;
            });
        },
        two: function (test, test2, $stateParams) {
            return test.gettest().$promise.then(test=> {

                return test2.gettest2(test.id, $stateParams.id).$promise.then(data => {
                    return data;
                });

            });
        }
    },

1 个答案:

答案 0 :(得分:4)

如果将第一个解析变量(one)注入第二个resolve语句,则angular ui路由器足够聪明,可以意识到在第一个解析语句完成之前它不会运行第二个解析语句。所以你会做的事情如下所示:

resolve: {
    one: function (test) {
        return test.gettest().$promise.then(data => {
            return data;
        });
    },
    two: function (one, test2, $stateParams) {
        //one is equal to the result of test.gettest()
        return test2.gettest2(one.id, $stateParams.id).$promise.then(data => {
                return data;
            });

        });
    }
},