Я хотел бы загрузить модуль «угловой на лету» в главном приложении, чтобы иметь возможность обмениваться моделями и услугами в других маршрутизируемых модулях «загрузка на лету» (с компонентами).
Для записейУ меня есть модуль приложения, который включает в себя модули Core и Shared.Вот для «статичной» части.С другой стороны, у меня есть несколько модулей для загрузки на лету, которые являются библиотеками (встроенными в файлы UMD и помещенными в ресурсы).Это как торговая площадка, где вы можете активировать некоторые модули, добавлять свои модули ...).На данный момент я могу загрузить некоторые модули на лету и сделать их доступными с помощью маршрутизации.
Но я бы хотел экспортировать API-сервисы вдругие модули, чтобы сделать его доступным для других компонентов модулей.Вот так:
Мне нужно загрузить какие-то одноранговые зависимости перед загрузкой модулей компонентов.На данный момент я могу загружать 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 в ядро »и т. д., должно быть так.Или очень похоже.
Большое спасибо.