Angular 导航端无映射参数的角度获取路由器

Angular 导航端无映射参数的角度获取路由器,angular,angular6,angular7,angular-routing,Angular,Angular6,Angular7,Angular Routing,我目前在订阅路由器事件时遇到了一个问题,我试图在没有映射参数的情况下获取URL。这是因为我们正在存储页面访问,但为了存储,我们有一个关系,即页面,我们去存储没有参数的url,因此我们只有一个记录,然后我们将参数存储在数据库的另一个字段中 我目前面临的问题,我在这里看到了关于使用routeConfig的答案,但由于我目前在另一个模块/a子路由中,其中的routePath始终是一个空字符串 基本上,我希望实现的是,如果我有一个url,比如/products/1,我想从中获取原始url,而不带参数,因

我目前在订阅路由器事件时遇到了一个问题,我试图在没有映射参数的情况下获取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'