我有一个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不会触发FolderOverviewComponent中的ngOnDestroy().导航到/ folder / 456 / users会这样做.
换句话说,如果路径没有改变,似乎Angular不会破坏组件(忽略:folderId的动态部分).这似乎是合理的,但我需要在ngOnDestroy()中清理一些东西.
每次导航到新路线(即使用不同的参数)时,是否可以将路由配置为调用destroy?
解决方法
这是设计的.如果只有路径参数发生变化而导致使用相同的路径,则不会销毁和重新创建组件,但会重复使用.
constructor(router: ActivatedRoute) { router.params.subscribe(param => routeChanged(param['folderId'])); }
有计划在未来提供更多的灵活性,但目前这是可行的方法.