Angular 路由器无法使用子目录中的绝对路径正确路由
Angular Router not routing correctly with Absolute Path in subdirectory
我试图让 Angular 路由器在站点托管在子目录中时导航到绝对路径。
当前网站托管于:
www.example.com/ngSite/
举个例子,我在点击事件中有这段代码
onClick(primaryLink){
let link: string = primaryLink.getAttribute('href');
//I expect link to look like this: /ngSite/path/to/thing
this.router.navigateByUrl([link]);
}
这应该导航到:
www.example.com/ngSite/path/to/thing
而是导航到(注意重复的子目录):
www.example.com/ngSite/ngSite/path/to/thing
在 angular.io 的文档中说
Always specify the complete absolute path when calling router's navigateByUrl method.
这就是我认为我正在做的事情。也许我遗漏了一些明显的东西,但任何输入都将不胜感激。
你的路由有重定向吗,像这样:
RouterModule.forChild([
{ path: '', redirectTo: 'whatever' },
{ path: 'whatever', component: WhateverController },
尝试用实际组件替换 redirectTo。
RouterModule.forChild([
{ path: '', component: WhateverController },
{ path: 'whatever', component: WhateverController },
这有助于解决我的相关问题,即产生了错误的 URL。
我通过在传入的元素上调用点击事件解决了这个问题。
所以我的简单示例将变为如下所示:
onClick(primaryLink){
this.renderer.invokeElementMethod(primaryLink, 'click');
}
我试图让 Angular 路由器在站点托管在子目录中时导航到绝对路径。
当前网站托管于: www.example.com/ngSite/
举个例子,我在点击事件中有这段代码
onClick(primaryLink){
let link: string = primaryLink.getAttribute('href');
//I expect link to look like this: /ngSite/path/to/thing
this.router.navigateByUrl([link]);
}
这应该导航到:
www.example.com/ngSite/path/to/thing
而是导航到(注意重复的子目录):
www.example.com/ngSite/ngSite/path/to/thing
在 angular.io 的文档中说
Always specify the complete absolute path when calling router's navigateByUrl method.
这就是我认为我正在做的事情。也许我遗漏了一些明显的东西,但任何输入都将不胜感激。
你的路由有重定向吗,像这样:
RouterModule.forChild([
{ path: '', redirectTo: 'whatever' },
{ path: 'whatever', component: WhateverController },
尝试用实际组件替换 redirectTo。
RouterModule.forChild([
{ path: '', component: WhateverController },
{ path: 'whatever', component: WhateverController },
这有助于解决我的相关问题,即产生了错误的 URL。
我通过在传入的元素上调用点击事件解决了这个问题。
所以我的简单示例将变为如下所示:
onClick(primaryLink){
this.renderer.invokeElementMethod(primaryLink, 'click');
}