gpt4 book ai didi

带参数的 Angular 4 延迟加载

转载 作者:太空狗 更新时间:2023-10-29 17:17:16 27 4
gpt4 key购买 nike

您好,我正在尝试延迟加载“详细信息模块”,同时还通过 URL 发送参数。

这是我懒加载的路线:

{
path: 'venue/:name/:id',
loadChildren: () => System.import('../containers/activity-detail/activity-detail.module').then((file: any) => {
return file.default;
})
},

我想路由到这个“activity-detail.module”,然后使用“:name”和“id:”参数加载详细信息。

加载的模块有自己的路由文件。

export const VenueDetailRoutes: Route[] = [
{
path: '',
redirectTo: 'venue/:name/:id',
pathMatch: 'full'
},
{
path: 'venue/:name/:id',
component: VenueDetailComponent,
data: {
shouldDetach: true, // Route will be resused. See CustomResuseStrategy.
title: null
}
},
{
path: '**',
redirectTo: '/'
}

];

似乎没有第一个默认对象就没有任何作用。我收到错误:

{
path: '',
redirectTo: 'venue/:name/:id',
pathMatch: 'full'
},

TypeError: Cannot read property 'path' of null

使用默认对象时出现错误:

Error: Cannot redirect to 'venue/:name/:id'. Cannot find ':name'.

如有任何帮助,我们将不胜感激。

最佳答案

我认为这行不通:

{
path: '',
redirectTo: 'venue/:name/:id',
pathMatch: 'full'
},

它不能将“空”路径与带参数的路径相匹配。

您的延迟加载路由的语法比我的复杂得多。我的看起来像这样:

{
path: 'movies',
loadChildren: './movies/movie.module#MovieModule'
},

请注意,“父”路由(本例中为“电影”)是在延迟加载路由中定义的,并且不会在加载模块路由中重复。

例如:

RouterModule.forChild([
{ path: '', component: MovieListComponent },
{ path: 'search', component: MovieSearchComponent },
{ path: ':id', component: MovieDetailComponent }
])

在你的情况下,我认为加载模块的路由应该是这样的:

export const VenueDetailRoutes: Route[] = [
{
path: ':name/:id',
component: VenueDetailComponent,
data: {
shouldDetach: true, // Route will be resused. See CustomResuseStrategy.
title: null
}
}
];

(尽管您可能想考虑放弃自定义重用策略,直到您的基本路由正常工作。)

关于带参数的 Angular 4 延迟加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46921179/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com