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

时间:2016-11-18 13:27:42

标签: angular angular2-routing

我有一个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?

1 个答案:

答案 0 :(得分:5)

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

您可以订阅* { -webkit-overflow-scrolling: touch; } 更改,以便在路线更改时执行代码:

params

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

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