如何查找Angular应用程序的完整URL,包括命名出口?

时间:2017-08-22 15:06:07

标签: angular url router

我一直在检查RouterRouterOutlet,看看能否知道整个网址是什么。但是我看不到任何适用的东西。

最理想的是,我希望它以分割的形式呈现,这意味着如果浏览器中的URL显示:

  

http://localhost:2006/some(aa:aha,bb:bha)

我会得到一个包含这样字段的对象:

  

... xxx.url.path =一些
  ... xxx.url.outlets [0] = {name:“aa”,路径:“aha”}   ... xxx.url.outlets [1] = {name:“bb”,路径:“bha”}
  ... xxx.url.server =“localhost”
  ... xxx.url.port = 2006

尽管如此,即使是像下面这样的复合版本也可以,因为我可以用一些字符串魔法将它自己分开。

  

... xxx.url.path = some(aa:aha,bb:bha)

我该怎么做?谷歌搜索时我错过了什么键?

1 个答案:

答案 0 :(得分:1)

您可以通过Router类或Location类访问当前URL。

import { Router } from "@angular/router";
constructor(private router: Router) { }

console.log(this.router.url);

import { Location } from "@angular/common";
constructor(private location: Location) { }

console.log(this.location.path());

请注意,路由器会重定向用户,因此根据您的配置,您可能必须订阅NavigationEnd事件以确保用户已重定向。

import { Event, NavigationEnd } from "@angular/router";

this.router.events.subscribe((event: Event) => { 
  if (event instanceof NavigationEnd){ 
    // do your stuff here 
  } 
});