有没有办法在AngularUI路由器

时间:2017-06-21 21:03:47

标签: angularjs coffeescript angular-ui-router angular-ui

我在coffeescript中有2个州......

stateProvider.state  'test',
    ...
    resolve:
        user: (LongRunning)->
            LongRunning.authenticate().then ->
                console.log("We are authenticated!")

stateProvider.state  'test.child',
    ...
    resolve:
        other: (AfterAuth)->
            AfterAuth.soSomethingWithAuth().then ->
                console.log("We are done!")

当然这不起作用,因为在父方法的auth方法解决之前启动了子决定。这意味着第二个函数将不会被验证并导致整个状态失败。

现在它不一定是状态路径的一部分,但是在调用resolve函数时需要完全完成它。

在调用child中的方法之前,如何确保完全解析父函数?

错误(?)解决方案

我能够提出的一个答案是使用手动引导程序。然而,这是乏味的,因为我需要重新连接我的所有服务。无论如何我可以在Angular中做到吗?

1 个答案:

答案 0 :(得分:5)

您是否将AngularUI路由器用于Angular 2或AngularJS?我认为AngularJS就是你使用coffeescript和AngularUI Router的事实。这是Angular标签而不是AngularJS。

无论如何在AngularUI路由器中,一个解析器可以依赖另一个解析器。这样的事情:

 function firstStep($stateParams, resolveStatus) {
   return $q.resolve();
 }

 resolve: {
   firstStep: firstStep,
   secondStep: ['firstStep', function (firstStep) {
   ...
   }]
 }