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

Navigate back to specific section of Previous page - Angular Router

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

第 1 页有 2 个版块。

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

从第 2 页使用 location.back(),我可以返回到第 1 页。

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

我想你要找的是一个页面锚点,angular 路由器支持它,参见:Angular2 Routing with Hashtag to page anchor 但我不知道 "location.back()" 是否适用于该解决方案。您必须对其进行测试或使用带有 router.navigate() 的自定义 "back" 导航。

否则你还有其他不同的选择:

  • 您可以将第 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 部分。