【发布时间】:2020-05-12 21:16:01
【问题描述】:
我有一个要求,我需要为 2 个组件使用相同的 URL。
假设路径为/path,组件为Foo 和Bar。
最初,我会看到 Foo 组件,点击链接后,我将被重定向到 Bar 组件。
/path (Foo) => /path (Bar)
现在我看到了 Bar 组件,如果我从浏览器中按下后退按钮,我需要重定向到 Foo 组件
/path (Bar) =>back button=>/path (Foo)
如果我按下“前进”按钮,我需要查看 Bar 组件
/path (Foo) =>forward button=> /path (Bar)
所以,基本上,我需要有相同的 URL,但以某种方式保留 Angular 路由器提供的所有功能,就像有 2 条不同的路径一样。
这可能吗?我查看了 NavigationExtras 选项,例如 skipLocationChange 或 replaceUrl,但这些选项对我没有帮助。 history pushState 或 replaceState 也没有(或者我可能不知道如何使用它们)。
【问题讨论】:
-
最终,我认为在不对 URL 进行一些更改的情况下使用浏览器后退/前进按钮是不可能的......即使你能解决问题,我也不知道它是否将是一个好主意...用一种方法和一些示例代码更新了我的答案。我认为您可能需要对相同的路径感到满意,但添加一个查询参数来指示应该显示哪个组件
标签: javascript angular angular-routing