首页 > 解决方案 > 根据配置加载角度分量

问题描述

我正在尝试使用 Angular 5 创建仪表板,我创建了一些显示数据的组件,我正在引导它们,它们调用服务并相应地显示数据,现在问题是,我不想通过引导它们加载所有小部件,在应用程序引导之前,我想调用一个服务,这将提供一系列需要加载的组件,我只想引导那些组件,我试了一下 APP_INITIALIZER 函数,我我能够调用提供配置数组的服务,但我不确定如何让它填充 app.module.ts 中的 entryComponent 数组,

这是我尝试过的,componentConfigService 在加载组件之前打印 jsonConfigResponse。

     @NgModule({
      declarations: [
        AppComponent,
        comp1,
        comp2,
        comp3
      ],
      imports: [
        BrowserModule,HttpClientModule
      ],
      providers: [comp1Service , ComponentConfigService,
        {
          provide: APP_INITIALIZER,
          useFactory: (configService: ComponentConfigService) => function() { return configService.getWidgetsToLoad()},
          deps: [ComponentConfigService],
          multi: true
        }],
      entryComponents: [],
      bootstrap: [Comp1,comp2]
})

我需要帮助以了解如何在引导和填充 entryComponent[] 之前读取配置,以便只有这些元素被引导和显示

例如: A , B , C , D 是组件 Configuration before bootstrapping 返回一个只有 {B,D} 的数组,因此只有 B & D 被引导并显示在 page 中。

提前感谢您的回复。

标签: javascriptangularangular5angular-components

解决方案


我们也在研究类似的路径并尝试实现相同的目标!

由于entryComponents数组必须在构建之前填充,因此可能无法使用服务加载数组。

此外,必须在构建之前填充此数据以使 AOT 工作!

如果我们在这方面取得任何进展,会及时通知您!


推荐阅读