重定向后的Angular浏览器后退按钮

我有一个委托组件,除了通过路径中的ID解析对象(例如/ tournament /:id),检测锦标赛的类型并转发(通过router.navigate(..))到另一条路线(例如/锦标赛/:id / league)

问题是浏览器后退按钮将返回到委托组件并显示我的委托组件的空模板.

是否有其他选项转发到另一个组件而不是router.navigate考虑以下内容:

>浏览器后退按钮不会跳转到委派组件
>路线/锦标赛/:id /联盟应反映在浏览器URL中

最佳答案 我找到了一个解决方法,仍然希望有人提出更复杂的东西,因为这个代码片段必须放在每个组件中.

它被放入构造函数中并检查新路由是否是委托组件之一.如果是这样,重定向到另一条路线.

_location.subscribe(loc => {
  let routeOfDelegatingComponent = "....";
  if (loc.url === routeOfDelegatingComponent) {
    router.navigate(['/acustomroute']);
  }
});
点赞