Angular 导航端无映射参数的角度获取路由器
我目前在订阅路由器事件时遇到了一个问题,我试图在没有映射参数的情况下获取URL。这是因为我们正在存储页面访问,但为了存储,我们有一个关系,即Angular 导航端无映射参数的角度获取路由器,angular,angular6,angular7,angular-routing,Angular,Angular6,Angular7,Angular Routing,我目前在订阅路由器事件时遇到了一个问题,我试图在没有映射参数的情况下获取URL。这是因为我们正在存储页面访问,但为了存储,我们有一个关系,即页面,我们去存储没有参数的url,因此我们只有一个记录,然后我们将参数存储在数据库的另一个字段中 我目前面临的问题,我在这里看到了关于使用routeConfig的答案,但由于我目前在另一个模块/a子路由中,其中的routePath始终是一个空字符串 基本上,我希望实现的是,如果我有一个url,比如/products/1,我想从中获取原始url,而不带参数,因
页面
,我们去存储没有参数的url,因此我们只有一个记录,然后我们将参数存储在数据库的另一个字段中
我目前面临的问题,我在这里看到了关于使用routeConfig
的答案,但由于我目前在另一个模块/a子路由中,其中的routePath
始终是一个空字符串
基本上,我希望实现的是,如果我有一个url,比如/products/1
,我想从中获取原始url,而不带参数,因此它将是/products/:id
this.router.events.subscribe((event: RouterEvent) => {
// I need to get the url here without the params mapped.
if (event instanceof NavigationEnd) {
// Logic here to track.
}
});
还有一点需要注意的是,当我之前听过
activationnd
并针对事件中的firstChild
属性时,state
似乎既没有完整的URL,也没有任何参数。您可以从激活的路由获取参数
constructor(private router: Router, route: ActivatedRoute) {
this.router.events.pipe(
filter(event => event instanceof NavigationEnd)
).subscribe((event: NavigationEnd) => {
// I need to get the url here without the params mapped.
let url = event.url;
const params = route.snapshot.params;
const properties = Object.entries(params);
properties.reverse();
for (const p of properties) {
url = url.substr(0, url.lastIndexOf('/'));
url = `${url}/:${p[0]}`;
}
console.log(url);
});
}
这不会给我指定的url格式的参数吗<代码>/products/':id'