gpt4 book ai didi

Angular2 - ngOnDestroy() 未在类似路线上调用

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

我有一个 Angular2 应用,其路由如下:

{
path: '',
component: ContentComponent,
children: [
{
path: 'folder/:folderId',
resolve: {
currentFolder: CurrentFolderResolver,
},
children: [
{
path: '',
resolve: {
folderStructure: FolderStructureResolve,
},
component: FolderOverviewComponent,
},
{
path: 'users',
component: UsersComponent,
}
]
}
]
}

当从像 /folder/123 这样的路径导航到 /folder/456 时,Angular 不会触发 ngOnDestroy() 中的 FolderOverviewComponent 。导航到 /folder/456/users 即可。

换句话说,如果路由不改变(忽略 :folderId 的动态部分),Angular 似乎不会破坏组件。这似乎是合理的,但我需要清理 ngOnDestroy() 中的内容。

我能否将路由配置为在每次导航到新路由时调用 destroy(即使用不同的参数)?

最佳答案

这是设计使然。如果只有一个路由参数发生变化导致使用相同的路由,则该组件不会被销毁和重新创建,而是会被重用。

您可以订阅 params 更改,以便能够在路由更改时执行代码:

constructor(router: ActivatedRoute) {
router.params.subscribe(param => routeChanged(param['folderId']));
}

有计划在未来提供更多的灵 active ,但目前这是要走的路。

另见 https://angular.io/guide/router#activated-route-in-action

关于Angular2 - ngOnDestroy() 未在类似路线上调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40678321/

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