在 $transaction 上返回一个 promise 会改变浏览器中的 URL,但在返回 false 时不会改变。URL 不应在 promise 被拒绝或解析之前发生变化。
作者: hubnerd创建于 2021年4月27日更新于 2022年4月18日
标签stale
这是 (勾选一个方框): - [X] 问题报告 - [ ] 功能请求 - [ ] 一般查询 我的 UI-Router 版本是: v1.0.26 # 问题报告 #### 当前行为: 目前,在浏览器上按下导航按钮后,在设置 $transition.onStart 以拦截时,如果您返回一个 promise,浏览器中的 URL 将在 promise 上调用 resolve 或 reject 之前发生变化,但如果您仅返回 false,则不会更改 URL。 #### 预期行为: 预期行为是直到 promise 返回 reject 或 resolve 为止,URL 才会发生变化。 因为在拒绝时,我不希望 URL 发生变化。 #### 链接到可重现问题的 Plunker 或 stackblitz: https://embed.plnkr.co/plunk/bCTFAXLTQwsk3NkP 如果您在单独的窗口中打开 Plunker 以查看 URL 变化,您可以看到当您访问 foo2 并点击浏览器中的后退按钮时,URL 没有发生变化,但如果您从 home 访问到 foo 并点击浏览器中的后退按钮,URL 发生变化,但 promise 在 2 秒钟后被拒绝。
内容来源: angular-ui/ui-router