Javascript 如何在angular中开始导航之前添加查询参数

Javascript 如何在angular中开始导航之前添加查询参数,javascript,angular,typescript,angular-router,query-parameters,Javascript,Angular,Typescript,Angular Router,Query Parameters,假设我有两个组件A和B。组件A导航到/A?random=random,组件B导航到/B。我想在导航开始之前添加authUserquery参数,这样最终结果应该分别如下所示/a?random=random&authUser=1,/b?authUser=1。 问题是组件A的url在附加authUserqueryParam not/A?random=random&authUser=1后看起来像这样 这里是链接 我不想对组件A和B导航方法进行更改,因为在实际应用程序中,我必须对每个导航方法进行更改,这将

假设我有两个组件
A
B
。组件A导航到
/A?random=random
,组件B导航到
/B
。我想在导航开始之前添加
authUser
query参数,这样最终结果应该分别如下所示
/a?random=random&authUser=1
/b?authUser=1
。 问题是组件
A
的url在附加
authUser
queryParam not
/A?random=random&authUser=1
后看起来像这样

这里是链接


我不想对组件
A
B
导航方法进行更改,因为在实际应用程序中,我必须对每个导航方法进行更改,这将是一个糟糕的做法。

exampe fo query param
this.router.navigate([
/${this.appStatus.baseUrl}/predict/result
]),{queryParams:{vsgid:vsgid,sid:sid,logo:logo});

例如查询参数
this.router.navigate([
/${this.appStatus.baseUrl}/predict/result
],{queryParams:{vsgid:vsgid,sid:sid,logo:logo});

对不起,我没有收到。对不起,我没有收到。
// App component
 ngOnInit() {
    this.router.events.subscribe((event) => {
      if(event instanceof NavigationStart) {
         if (!event.url.includes('authUser')) {
          // remove queryParams
          const url = event.url.split('?')[0];
          if (url !== '/') {
            // /a/etc => ['a','etc']
            const newUrl = url.split('/').filter(_subUrl => _subUrl);
            this.router.navigate(newUrl, { queryParams: { authUser: '1' }, queryParamsHandling: 'merge' });
          }
        }
      }
    })
  }

  navigateToA() {
    this.router.navigate(['a'], { queryParams: { random: 'random' } });
  }

  navigateToB() {
    this.router.navigate(['b']);
  }