Angular RouterLink 相对路径在具有空路径的组件中不起作用

Angular RouterLink relative path does not work in component having empty path

我的子路径定义为

{ path: '', component: CartMainComponent, pathMatch: 'full' }

当我在 CartMainComponent 中时,整个路径看起来像这样 http://mystype.com/brand/MyBrandId/cart 在购物车中,我想导航到 /brand/MyBrandId/cart,所以我在 html 中使用了 routerLink="../cart"。但这给了我下一个错误

Error: Cannot match any routes. URL Segment: 'brand/Rotiform/cart/catalog'

只有当我这样做时 routerLink="../../../cart" 才有效

这是不合逻辑的,即使空路径被视为一个附加级别的相对路径。我仍然希望使用 '..' 两次而不是三次

是否可以修复它,这样我就可以相对地通过路由而不用考虑是否有任何空路径?

是的,Angular 团队针对此问题添加了修复程序,但您需要通过添加

手动启用它

relativeLinkResolution: 'corrected' 在根路由器配置中。 IE。

@NgModule({ imports: [RouterModule.forRoot(routes, { relativeLinkResolution: 'corrected'})], exports: [RouterModule] })

但是请注意,这个 'bugfix' 并没有解决整个错误。这就是默认情况下不启用它的原因。 此 PR 描述了问题:https://github.com/angular/angular/issues/26983 请记住。

RelativeLinkResolution 也在这个 github 线程中讨论 https://github.com/angular/angular/issues/13011