Загрузка угловых компонентов в зависимости от конфигурации - PullRequest
0 голосов
/ 26 апреля 2018

Я пытаюсь создать панель мониторинга, используя Angular 5, я создал несколько компонентов, которые отображают данные, и я загружаю их, и они вызывают службы и отображают данные соответственно, теперь проблема в том, что я не Чтобы загрузить все виджеты, загрузив их, перед загрузкой приложения я хочу вызвать службу, которая выдаст массив компонентов, которые необходимо загрузить, и я хочу загрузить только те из них, которые я использовал для проверки функции APP_INITIALIZER. , Я могу вызвать службу, которая предоставляет массив конфигурации, но я не уверен, как заставить его заполнить массив entryComponent в app.module.ts,

Это то, что я пробовал, 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 голосов
/ 12 мая 2018

Мы также исследуем похожие пути и пытаемся достичь того же!

Поскольку массив entryComponents должен быть заполнен до сборки, загрузка массива с помощью службы может оказаться невозможной.

Более того, эти данные должны быть заполнены перед сборкой, чтобы AOT работал!

Если мы что-то продвинем в этом, будем держать вас в курсе!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...