【发布时间】:2017-01-26 13:41:37
【问题描述】:
我有一个带有路由器的 Angular 2 应用程序。假设用户在应用程序的页面 A 上,然后他导航到页面 B,然后导航到页面 C。此时,当他单击浏览器上的后退按钮时,我希望他回到页面 A (通过跳过 B)。我怎样才能实现它?
【问题讨论】:
-
这个答案可能会有所帮助stackoverflow.com/a/37055297/3283209
我有一个带有路由器的 Angular 2 应用程序。假设用户在应用程序的页面 A 上,然后他导航到页面 B,然后导航到页面 C。此时,当他单击浏览器上的后退按钮时,我希望他回到页面 A (通过跳过 B)。我怎样才能实现它?
【问题讨论】:
当从 B 导航到 C 时,必须设置 { replaceUrl: true }:
this.router.navigate(["/c"], { replaceUrl: true });
这会将浏览器历史记录中的页面 B 替换为 C。
【讨论】:
快速简便的解决方案是
在你的打字稿中使用导航而不是 html 文件。
并指定参数
{ skipLocationChange: true }
正确的解决方案是编写自己的导航策略并在 app.modules.ts 中指定
【讨论】: