Как импортировать удаленный компонент в угловых 5 или 6 - PullRequest
0 голосов
/ 11 мая 2018

Этот проект содержит рабочий пример и прекрасно работает

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);
    }
  );

, если я изменил параметр в импортена мой удаленный скрипт его не удается достать ..

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