Этот проект содержит рабочий пример и прекрасно работает
https://github.com/dianadujing/dynamic-remote-component-loader
Я пытаюсь переназначить этот код для своего собственного проекта:
ngAfterViewInit(){
const url = 'https://gist.githubusercontent.com/hamoom/afe499b60b55f3af8fd31eb04ca8cadf/raw/cf71ea940b54691085e9b9267ee62a52a167d927/app.module.ts';
console.log(System.import(url));
const importer = (url:any) => Observable.fromPromise(System.import(url));
console.log('importer:', importer);
importer(url)
.subscribe((modules) => {
console.log('modules:', modules, modules['AppModule']);
this.cfr = this.compiler.compileModuleAndAllComponentsSync(modules['AppModule']);
console.log(this.cfr,',', this.cfr.componentFactories[0]);
this.putStuffHere.createComponent(this.cfr.componentFactories[0], 0);
});
}
Iполучаю эту ошибку:
core.js: 1449 Ошибка ОШИБКА: Uncaught (в обещании): Ошибка: не удается найти модуль 'https://gist.githubusercontent.com/hamoom/afe499b60b55f3af8fd31eb04ca8cadf/raw/cf71ea940b54691085e9b9267ee62a52a167d927/app.module.ts'.
также:
/ src / app / upsell / upsell.component.ts 35: 20-38 Критическая зависимость: запрос зависимости является выражением
Я пытался использовать этотоже:
import(url).then(module => {
console.log(module)
}
);
Я все еще получаю эту ошибку отсутствующего модуля.Как я могу получить этот удаленный компонент?кажется, этот код работает только для компонентов в той же файловой системе.
Мне удалось заставить это работать, используя компонент в моей файловой системе
import('./meh.component').then(module => {
console.log(module)
this.cfr = this.compiler.compileModuleAndAllComponentsSync(module['AppModule']);
this.footer.createComponent(this.cfr.componentFactories[0], 0);
}
);
, если я изменил параметр в импортена мой удаленный скрипт его не удается достать ..