首页 > 解决方案 > 如何在路线更改时停止 ngOnInit 拍摄?

问题描述

我的网站中有这种路由实现:

  {
    path: 'home',
    component: CabinetComponent,
    canActivate: [PrivateRouterGuard],
    data: {section: MainComponent}
  },
  {
    path: 'settings/:page',
    component: CabinetComponent,
    canActivate: [PrivateRouterGuard],
    data: {section: SettingsComponent}
  }

如您所见,例如 /home 和 /settings/account 都有相同的组件要显示,并且橱柜内的部分作为组件对象传输到数据属性中,并以这种方式显示在橱柜组件中:

<ng-container *ngComponentOutlet="routeComponent"></ng-container>

这里的 routeComponent 是一个变量,它包含了这个传入要显示的数据组件。

我的观点和目标是在用户进入他的机柜时进行一次性初始化,我认为 ngOnInit 会对我执行此操作,但在每次路由更改之后,尽管事实上,路由组件并没有改变并保持为 CabinetComponent , 每次我更改路线时,CabinetComponent 内的 ngOnInit 都会触发。我应该停止这一切。有任何想法吗?

标签: angularangular-cliangular-router

解决方案


推荐阅读