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

前端之家收集整理的这篇文章主要介绍了Angular2 – ngOnDestroy()未在类似路线上调用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个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?

解决方法

这是设计的.如果只有路径参数发生变化而导致使用相同的路径,则不会销毁和重新创建组件,但会重复使用.

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

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

有计划在未来提供更多的灵活性,但目前这是可行的方法.

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

猜你在找的Angularjs相关文章