首页 > 解决方案 > Angular 中 APP_INITIALIZER 的等效模块

问题描述

Angular中APP_INITIALIZERfor 功能模块的等价物是什么?我想在(懒惰地)加载我的功能模块时运行一些代码。该代码将需要注入一些依赖项。

不过,我似乎找不到任何类似的模块项目。我在 Angular 文档网站(“初始化程序”)上使用了搜索,但什么也没找到。我浏览了部分模块文档并在浏览器中使用了类似的搜索词。但我什么也没找到。

如何在 Angular 中加载模块时运行代码(取决于通过 DI 的共享服务)?


PS。可能这是一个 XY 问题,其中“Y”是我上面的问题。在这一点上,我本质上对学习“Y”很感兴趣,但为了完整起见,我的“X”是我希望我的功能模块回调到MenuService共享模块中的 a 以注册功能模块想要贡献的任何菜单项.

标签: angular

解决方案


不确定这是否是惯用的,但我会通过建议constructor为此目的使用模块功能来回答我的问题。例如:

@NgModule({
  imports: [
    CommonModule,
    ThingsRoutingModule,
  ],
  declarations: [
    // Feature module components here
  ],
})
export class ThingsModule {
  constructor(myService: MySharedService) {
    myService.doSomething('From lazy loaded feature module!');
  }
}

MySharedService因此被注入的地方。


推荐阅读