根据配置加载角度组件

时间:2018-04-26 10:08:12

标签: javascript angular angular5 angular-components

我正在尝试使用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是组件     引导前的配置返回仅包含{B,D}的数组     所以只有B& D得到引导并显示在页面中。

提前感谢您的回复。

1 个答案:

答案 0 :(得分:0)

我们也在研究类似的路径,并努力实现同样的目标!

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

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

如果我们就此发展任何事情,请随时发布!