我在 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/