我一直在检查Router和RouterOutlet,看看能否知道整个网址是什么。但是我看不到任何适用的东西。
最理想的是,我希望它以分割的形式呈现,这意味着如果浏览器中的URL显示:
我会得到一个包含这样字段的对象:
... 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)
我该怎么做?谷歌搜索时我错过了什么键?
答案 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
}
});