Angular url中的routerlink复制路径

Angular url中的routerlink复制路径,angular,Angular,我有以下路线设置: export const appRoutes:Routes = [ { path: 'application/:id', component: ApplicationEditComponent, resolve: {applicationdropdowns: ApplicationEditResolver}}, { path: 'application', component: ApplicationListComponent, resolve: {applications:

我有以下路线设置:

export const appRoutes:Routes = [
{ path: 'application/:id', component: ApplicationEditComponent, resolve: {applicationdropdowns: ApplicationEditResolver}},
{ path: 'application', component: ApplicationListComponent, resolve: {applications: ApplicationListResolver, applicationStatus: ApplicationstatusResolver}},
{ path: '', redirectTo: '/application', pathMatch: 'full'}
])

在该页面中,我使用以下内容构建了一个href:

<a [routerLink]="['/application', application?.applicationSeqid]">click here</a>
点击这里
当我将鼠标悬停在链接上时,我看到: 本地主机:4200/application/1

但当我单击它时,解析器将触发,但随后我在控制台中看到以下错误:

错误:无法匹配任何路由。URL段: “应用程序/应用程序/1”

它似乎在路由中添加了一个额外的“应用程序”,只有在我使用解析器时才会发生这种情况

我可以手动点击网页的网址,它似乎很好。此外,如果我删除解析器,应用程序页面的链接也可以正常工作。我的解析器如下:

@Injectable()
export class ApplicationEditResolver implements Resolve<any> {
    constructor(private _dropDownService : ApplicationDropdownService) { }

  resolve(){
    return this._dropDownService.getApplicationDropdowns().map(data => {
      let applicationDropdowns = <IApplicationDropdown>{};
      applicationDropdowns.applicationStatuses = data[0];
      applicationDropdowns.applicationTypes = data[1];
      return applicationDropdowns;
    });
  }
}
@Injectable()
导出类ApplicationEditResolver实现解析{
构造函数(私有_dropDownService:ApplicationDropdownService){}
解决(){
返回此值。\u dropDownService.getApplicationDropdowns().map(数据=>{
让applicationDropdowns={};
applicationDropdowns.ApplicationStatus=数据[0];
applicationDropdowns.applicationTypes=数据[1];
返回应用程序下拉列表;
});
}
}
下拉服务应该从2个api调用返回数据,我想将它们都加载到解析器中:

  getApplicationDropdowns():Observable<IApplicationDropdown> {
    return Observable.forkJoin([
      this.getApplicationStatus().map(res => res),
      this.getApplicationType().map(res => res)
    ]);
getApplicationDropdowns():可观察{
返回可观察的forkJoin([
这个.getApplicationStatus().map(res=>res),
this.getApplicationType().map(res=>res)
]);

发布一个完整的最小示例,在stackblitz中再现该问题。我认为您的代码问题应该使用resolve来解决两个问题,如path
'application/:id'
'application'
。为什么要使用resolve来解决path
'application'
?我有一个应用程序列表的应用程序,所以我将其改为“应用程序”,现在我是当我点击一个链接时,我遇到了以下错误:无法匹配任何路由。URL段:“applications/application/1”似乎总是保留应用程序,解析程序确实遇到了一个断点,所以它会进入其中,但在运行之后,错误立即出现。还尝试向索引添加一个base href,结果相同。我发现了问题,我有两个lin同一区域中的ks都要走同一条路线。一个在div上,另一个在div内,单击内部按钮会触发这两个。当我放入内部按钮时,我忘记移除外部按钮,移除一个按钮解决了问题。