Angular4获得一条完整的Url路由

时间:2018-01-15 10:24:31

标签: angular routing

我正在尝试获取路由的完整URL,但似乎没有任何工作,我找不到任何文档来执行此操作。

我发现了类似的问题:Get current url in Angular 4

我尝试过使用this._router.url,但它只提供了路径。我需要整个网址,包括方案等。

有谁知道如何获取路线的完整网址?

2 个答案:

答案 0 :(得分:1)

Ankur Garg提供的解决方案有效,因为location.path()返回地址栏中的路径,而不是当前可见的组件路线。

这在用户在地址栏中输入网址并按Enter的情况下特别有用。

例如,如果您输入https://somedomain.com/sent,则此请求将首先发送到服务器,并且不会由角度路由处理处理。如果捕获了单页应用程序(SPA)上所有常见的情况,无论请求的URL是什么,服务器总是将index.html发送回,首先加载的是app.component,在其中,如果使用router.url,则始终会显示“ /”,而不是“ / sent”。

因此,如果您需要存储用户最初请求的路径,则可以使用location.path()并将其保存在某处。一旦在客户端完成了所有操作,例如身份验证,访问验证等,您就可以始终将用户重定向到原始请求的路径。

这不仅适用于地址栏中键入的URL,而且还适用于通过电子邮件,社交媒体等共享的URL。

答案 1 :(得分:-2)

试试这个

导入部分

import {Location} from '@angular/common';

构造函数部分

constructor(private _location: Location) {
 console.log(this._location.path()); //will give you current url
}