【问题标题】:How to get url before route in Angular 4如何在Angular 4中的路由之前获取url
【发布时间】:2018-06-08 01:48:01
【问题描述】:

假设我有两条路线:

{ path: '/path1', component: component1 }
{ path: '/path2', component: component2 }

我在“/path1”并导航到“/path2”。

所以我的问题是如何在组件 2 构造函数或代码中的任何位置获取路由 url '/path1',而不通过任何服务使用解析或全局变量。

Component2.ts

export class Component2{
    constructor(router: Router) {
        router.events.subscribe((event) => {
            // here I want to get route url '/path1' from component1
        });
    }
}

如果有人需要更多说明,请告诉我。

【问题讨论】:

  • 不,它不会解决我的问题,因为在这里他们在导航到某个变量 previousUrl: 字符串之前保存路由 url,但我想要的是从导航开始的地方获取该页面的 url,即, Component1 在导航结束的其他组件中,即在组件 2 中。

标签: angular angular2-routing angular4-router


【解决方案1】:

存储当前事件,以便下次发生时可以使用它

previousUrl: string;
constructor(router: Router) {
  router.events
  .filter(event => event instanceof NavigationEnd)
  .subscribe(e => {
    console.log('prev:', this.previousUrl);
    this.previousUrl = e.url;
  });
}

【讨论】:

    【解决方案2】:

    我不确定您想如何使用它。但是,如果您知道应用程序中的可用路径,您可以简单地在 component2 中使用,例如: this.router.navigate(["/path1"]); 您可以使用的基本 URL,例如: 位置.主机 所以你的网址是 location.host + "/path2" 这就是你要找的吗?

    【讨论】:

    • 我为什么要导航到我来的地方。我的问题是我必须根据最后访问的路线实现一些业务逻辑。
    猜你喜欢
    • 2018-05-01
    • 1970-01-01
    • 2023-02-02
    • 2020-03-16
    • 2020-11-16
    • 1970-01-01
    • 2015-05-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多