angularjs - 有没有办法在AngularUI路由器中的任何子解决之前解决 promise

标签 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!")

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

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

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

错误 (?) 解决方案

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

最佳答案

你为 Angular 2 或 AngularJS 使用 AngularUI 路由器吗?我认为这是 AngularJS,因为您使用的是 coffeescript 和 AngularUI 路由器。这是 Angular 标签而不是 AngularJS。

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

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

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

关于angularjs - 有没有办法在AngularUI路由器中的任何子解决之前解决 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44686252/

相关文章:

javascript - netbeans ide coffeescript 将 utf-8 bom 添加到输出文件

javascript - 如何获取与 angularjs 的 ui-router 一起使用的多个 View 的示例

javascript - 如何在 ui-router 的父模板中显示状态

javascript - angular.js - 用西类牙语包装货币符号和小数

javascript - 我不断收到 [$injector :modulerr] in angularJS

javascript - AngularJS - Angular ui 路由器中的范围变量

javascript - 根据 Angularjs 中的选择选项添加或删除字段

coffeescript - 如何在 ElasticSearch 中组合多个查询

javascript - 如何在 ng-repeat 循环中初始化输入复选框的 ng-model

javascript - angularJS $location.path 带参数