【问题标题】:Angular 2 get previous page urlAngular 2获取上一页网址
【发布时间】:2017-05-04 08:58:15
【问题描述】:

我有两个组件。客户和发货组件。当用户从 Shipment 组件到 Customer 组件时。我想将 Customer 组件直接发送到 Shipment 组件。

我使用这种方法。 this._location.back(); 来自位置 angular/common。

这个方法总是直接指向后页。但我想直接在我来自装运组件的时候。

【问题讨论】:

标签: javascript angular angular-ui-router angular2-routing


【解决方案1】:

Angular 6 更新

将下面的代码插入到您的父组件中,其中包含您的 2 个组件:-

import { Router, RoutesRecognized } from "@angular/router";
import { filter, pairwise } from 'rxjs/operators';

previousUrl:string;

constructor(private router: Router) {

    router.events
        .pipe(
          filter(event => event instanceof RoutesRecognized),
          pairwise()
        )            
        .subscribe((e: any) => {
            this.previousUrl = e[0].urlAfterRedirects;
        });
}

它对我有用,我希望它也对你有用。

【讨论】:

  • 将此代码添加到您的父组件中,其中包含您的 2 个组件
  • 我在代码中添加了成对方法。它返回两个当前和以前的 url。但我没有在任何地方使用这些网址。
  • 您可以订阅路由更改并存储当前事件,以便在下次发生时使用它。这取决于您的期望。在最初(第一次)它的值将为空,因为没有以前的路线。您还需要在根路由器上执行此操作,否则,您只会在此组件的子路由之间导航时获得。
  • 得到错误“RouteConfigLoadStart”类型上不存在属性“url”。
  • 这个答案不应该被接受,它可能应该被删除。这只返回当前路由,不返回之前建议的url。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-22
  • 1970-01-01
  • 1970-01-01
  • 2018-11-14
  • 1970-01-01
  • 1970-01-01
  • 2021-11-01
相关资源
最近更新 更多