gpt4 book ai didi

angularjs - 阻止所有 $state 转换,直到 promise 得到解决

转载 作者:行者123 更新时间:2023-12-02 22:52:49 26 4
gpt4 key购买 nike

我正在使用 ui-router。
我希望能够阻止任何状态转换,直到 promise 得到解决。

有多个状态,因此为所有状态设置相同的 resolve 属性并不是一个好主意。

Promise 需要在 Angular 应用程序内部解决,因此在解决外部 Promise 后引导应用程序将不起作用。

我当前的解决方案依赖于一个 $stateChangeStart 监听器,该监听器调用 event.preventDefault(); 并在 promise 解决后自行删除。这个解决方案有很多复杂性,除了它的意图不清楚,除非得到很好的评论。

那么,是否有更好的解决方案来阻止所有状态转换,直到一切正常?

最佳答案

创建一个抽象父状态,使其余子状态成为该状态。在父状态上使用解析对象,因此生成的依赖关系将可用于所有子状态。

参见:https://github.com/angular-ui/ui-router/wiki/Nested-States-%26-Nested-Views#abstract-states

An abstract state can have child states but can not get activated itself. An 'abstract' state is simply a state that can't be transitioned to. It is activated implicitly when one of its descendants are activated.

Some examples of how you might use an abstract state are:

  • To provide resolved dependencies via resolve for use by child states.

关于angularjs - 阻止所有 $state 转换,直到 promise 得到解决,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28421084/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com