Angular 7 - модуль без маршрутизации «загрузка на лету» (общие провайдеры / службы) - PullRequest
0 голосов
/ 07 марта 2019

Я хотел бы загрузить модуль «угловой на лету» в главном приложении, чтобы иметь возможность обмениваться моделями и услугами в других маршрутизируемых модулях «загрузка на лету» (с компонентами).

Для записейУ меня есть модуль приложения, который включает в себя модули Core и Shared.Вот для «статичной» части.С другой стороны, у меня есть несколько модулей для загрузки на лету, которые являются библиотеками (встроенными в файлы UMD и помещенными в ресурсы).Это как торговая площадка, где вы можете активировать некоторые модули, добавлять свои модули ...).На данный момент я могу загрузить некоторые модули на лету и сделать их доступными с помощью маршрутизации.

enter image description here

Но я бы хотел экспортировать API-сервисы вдругие модули, чтобы сделать его доступным для других компонентов модулей.Вот так:

enter image description here

Мне нужно загрузить какие-то одноранговые зависимости перед загрузкой модулей компонентов.На данный момент я могу загружать api-сервис так же, как загружаю модули компонентов, но я не знаю, как получить доступ к моим сервисам (например, TestService).

private loadApiDependency(dep: ModuleDependency) {

return SystemJS.import(`${dep.location}`).then((exports) => {
  const moduleNg = exports[`${dep.moduleName}`];
  return this.compiler.compileModuleAsync(moduleNg).then((moduleFactory: NgModuleFactory<any>) => {
    const moduleRef = moduleFactory.create(this.injector);
    console.log(this.injector.get('TestService'));
    return moduleFactory;
  });
 });
}

Моя идея состояла в том, чтобы использовать модуль Core для ссылки на все нагрузки.услуги на лету.Но сейчас у меня есть ошибка доступа к TestService: NullInjectorError: No provider for TestService!.

Более того, я не знаю, как ссылаться на мой API в компонентных модулях.Я думал, что мог бы использовать вид одноранговых зависимостей, но на время разработки ссылки будут отсутствовать ...

У кого-то есть подобное решение или идея?

Пожалуйста, не отвечайте мне "Использоватьотложенная загрузка »,« Поместите свой API в ядро ​​»и т. д., должно быть так.Или очень похоже.

Большое спасибо.

...