导航回上一页的特定部分 - 角度路由器



我有2页。第 1 页和第 2 页。第 1 页和第 2 页位于不同的组件中。

第 1 页有 2 个部分。

从第 1 页第2 部分使用 router.navigate((,我导航到第 2 页。

从页面2使用位置.back((,我可以回到页面1。

使用 Location.back(( 总是将我重定向到 Page1 的第一部分。但我希望我回到第 1 页的第 2 部分。

我认为您正在寻找的是页面锚点,并且由角度路由器支持,请参阅: Angular2 使用主题标签路由到页面锚点 但我不知道"location.back(("是否适用于该解决方案。您必须对其进行测试,或者使用带有router.navigate((的自定义"后退"导航。

否则,您有不同的其他选择:

  • 您可以将第 1 页分成两个子组件,每个子组件对应一个子组件,并具有自己的路由。考虑一下您的应用程序设计是否更有意义。这可能是最简单的选项,在这种情况下 location.back(( 将起作用。

  • 您可以使用可选的路由参数"page1?section=2",并使用以下代码在 Page1 组件中搜索它:

剪裁:

constructor(private activatedRoute: ActivatedRoute) {
this.activatedRoute.params.subscribe((params: Params) => {
const section = params["section"];
});    
}

然后,您可以根据节常量在 Page1 组件内滚动视图。如果它等于 1,则滚动到第 1 节,如果它等于 2,则滚动到第 2 节。

最新更新