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

Ørn*_*sen 2 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;
                });

            });
        }
    },
Run Code Online (Sandbox Code Playgroud)

小智 5

如果将第一个resolve变量(one)注入第二个resolve语句,则Angular ui路由器足够聪明,可以意识到它将不会运行第二个resolve语句,直到第一个完成。因此,您将执行以下操作:

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;
            });

        });
    }
},
Run Code Online (Sandbox Code Playgroud)