首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >不同的路由在Angular 7中相同的组件

不同的路由在Angular 7中相同的组件
EN

Stack Overflow用户
提问于 2019-07-17 16:26:39
回答 2查看 459关注 0票数 1

我对不同的路由使用相同的组件,但是当我在相同组件的路由之间导航时,URL会发生变化,但页面内容是相同的。

我使用了这个解决方案:

代码语言:javascript
代码运行次数:0
运行
复制
constructor(route:ActivatedRoute) {
  route.url.subscribe(val => {
     //Code Here
  });
}

我现在有了预期的行为,但还有另一个问题: Angular没有在浏览器历史记录中保存以前的URL。

如果流程是:A -> B -> C,其中B和C是相同的组件,如果我在浏览器中单击back按钮,我将导航到A而不是B。

EN

回答 2

Stack Overflow用户

发布于 2019-07-17 16:33:42

之所以会发生这种情况,是因为默认情况下,Angular不会维护该状态。但是,您可以通过以下方式使其执行此操作:

代码语言:javascript
代码运行次数:0
运行
复制
ngOnInit(){
    window.history.pushState( {} , 'ComponentName', '/path' );
}

您可以编写一个服务,该服务将在您每次导航到某个组件时推送新状态。一旦您保持状态,然后按back按钮将带您到该组件。

我没有对此进行测试,但它应该可以工作。

票数 0
EN

Stack Overflow用户

发布于 2019-07-17 16:40:39

解决这个问题的一种方法是创建两个新组件,每个组件中只有一个html,即所需组件的选择器。然后,在路由器中,只需将组件定义为两个新组件中的一个,Angular会将它们注册为不同的组件,并修复问题。我以前遇到过这个问题,这是我找到的最简单、最直接的解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57071633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档