Angular 带参数的路由器
Angular router with params
我创建了一个路由器,其父路由包含 id 和子路由。问题是,当我想使用选项卡在我的子路由下导航时,出现错误:
错误:无法匹配任何路线。 URL 段:'tabs/user/1/overview'。
错误:无法匹配任何路由。 URL 段:'tabs/user/1/overview'.
用户路由器:
export const routes: Routes = [
{
path: 'user/:id',
component: UserdetailComponent,
resolve: {
test: dataResolver,
},
children: [
{ path: '', redirectTo: 'overview', pathMatch: 'full' },
{ path: '', redirectTo: 'overview', pathMatch: 'full' },
{ path: 'overview', loadChildren: () =>
import('./overview-module/overview.module').then(
m => m.OverviewModule
)
},
{ path: 'contact', loadChildren: () =>
import('./contact-module/contact.module').then(
m => m.ContactModule
)
},
]}];
export const UserModule: ModuleWithProviders = RouterModule.forChild(
routes
);
路由概览:
@NgModule({
declarations: [OverviewComponent],
imports: [
CoreModule,
RouterModule.forChild([
{
path: '',
component: OverviewComponent,
}
]),
],
exports: [OverviewComponent]
})
导出 class 概览模块 {}
还有我的标签中的一个按钮:
<ion-button
size="small"
fill="clear"
color="text"
[routerLink]="[userId, 'overview']"
是否因为我的子路由附加到一个有自己路由器的模块?请问如何解决我的问题?
编辑:我已经尝试使用组件并通过在每条道路上添加我的 :userId ,我可以在道路上导航但我被卡住了。我猜它进入子路由并且找不到其他路由....
谢谢
我认为您需要将路由器 link 更改为
[routerLink]="['/tabs/user', userId, 'overview']"
我们需要先指定父路径,然后我们才能添加子路径。让我知道它是否有效。
我创建了一个路由器,其父路由包含 id 和子路由。问题是,当我想使用选项卡在我的子路由下导航时,出现错误:
错误:无法匹配任何路线。 URL 段:'tabs/user/1/overview'。 错误:无法匹配任何路由。 URL 段:'tabs/user/1/overview'.
用户路由器:
export const routes: Routes = [
{
path: 'user/:id',
component: UserdetailComponent,
resolve: {
test: dataResolver,
},
children: [
{ path: '', redirectTo: 'overview', pathMatch: 'full' },
{ path: '', redirectTo: 'overview', pathMatch: 'full' },
{ path: 'overview', loadChildren: () =>
import('./overview-module/overview.module').then(
m => m.OverviewModule
)
},
{ path: 'contact', loadChildren: () =>
import('./contact-module/contact.module').then(
m => m.ContactModule
)
},
]}];
export const UserModule: ModuleWithProviders = RouterModule.forChild(
routes
);
路由概览:
@NgModule({
declarations: [OverviewComponent],
imports: [
CoreModule,
RouterModule.forChild([
{
path: '',
component: OverviewComponent,
}
]),
],
exports: [OverviewComponent]
})
导出 class 概览模块 {}
还有我的标签中的一个按钮:
<ion-button
size="small"
fill="clear"
color="text"
[routerLink]="[userId, 'overview']"
是否因为我的子路由附加到一个有自己路由器的模块?请问如何解决我的问题?
编辑:我已经尝试使用组件并通过在每条道路上添加我的 :userId ,我可以在道路上导航但我被卡住了。我猜它进入子路由并且找不到其他路由....
谢谢
我认为您需要将路由器 link 更改为
[routerLink]="['/tabs/user', userId, 'overview']"
我们需要先指定父路径,然后我们才能添加子路径。让我知道它是否有效。