如何找到 Angular 应用程序的完整 URL,包括命名网点?
How to find out full URL for Angular application including named outlets?
我一直在检查两个 Router and RouterOutlet 以查看是否可以找出整个 URL 行是什么。不过,我看不到任何适用的内容。
最理想的情况是,我希望它以拆分形式显示,这意味着如果我浏览器中的 URL 显示:
我会得到一个具有如下字段的对象:
...xxx.url.path = some
...xxx.url.outlets[0] = {name:"aa", path: "aha"}
...xxx.url.outlets[1] = {name:"bb", path: "bha"}
...xxx.url.server = "localhost"
...xxx.url.port = 2006
不过,即使像下面这样的复合版本也可以,因为我可以用一些字符串魔术自己将它拆分。
...xxx.url.path = some(aa:aha,bb:bha)
我该怎么做?谷歌搜索时我错过了哪些键?
您可以通过路由器 class 或位置 class 访问当前 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
}
});
我一直在检查两个 Router and RouterOutlet 以查看是否可以找出整个 URL 行是什么。不过,我看不到任何适用的内容。
最理想的情况是,我希望它以拆分形式显示,这意味着如果我浏览器中的 URL 显示:
我会得到一个具有如下字段的对象:
...xxx.url.path = some
...xxx.url.outlets[0] = {name:"aa", path: "aha"}
...xxx.url.outlets[1] = {name:"bb", path: "bha"}
...xxx.url.server = "localhost"
...xxx.url.port = 2006
不过,即使像下面这样的复合版本也可以,因为我可以用一些字符串魔术自己将它拆分。
...xxx.url.path = some(aa:aha,bb:bha)
我该怎么做?谷歌搜索时我错过了哪些键?
您可以通过路由器 class 或位置 class 访问当前 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
}
});