Каков наилучший способ замены содержимого в шаблоне электронной почты в формате HTML в Angular 5? - PullRequest
0 голосов
/ 23 ноября 2018

У меня есть шаблон электронной почты в формате HTML, хранящийся в assets/templates/commands-report.html

Этот файл шаблона содержит *ngIF, *ngFor [ngStyle] и т. Д.

В моем сервисе я написал следующеефункция, которая принимает содержимое файла шаблона, которое я получаю при вызове HTTP.Это отлично работает в режиме разработки.Это означает, что все мои данные в шаблоне электронной почты HTML отображаются, и я могу отправить HTML как полезную нагрузку API.Однако, когда я делаю производственную сборку с ng build --prod и пытаюсь перейти к коду, я получаю ошибку Runtime compiler is not loaded

public enrichHTMLEmailTemplate(template: string, vc: ViewContainerRef, data: any): Observable<any> {

let templateSubject = new Subject<any>();

const tmpCmp = Component({ template })(class {

  ngOnInit() {
  }
});

const tmpModule = NgModule({
  declarations: [tmpCmp],
  imports: [CommonModule]
})(class { });

let cmpRef: ComponentRef<any>;
this.compiler.compileModuleAndAllComponentsAsync(tmpModule)
  .then((factories) => {
    const f = factories.componentFactories[0];
    cmpRef = f.create(this.injector, [], null, this.moduleRef);
    cmpRef.instance.name = 'email-component';
    cmpRef.instance.data = data;
    vc.insert(cmpRef.hostView, 1);

    setTimeout(() => {

      templateSubject.next(cmpRef.location.nativeElement.innerHTML);
    }, 3000);
  });

return templateSubject.asObservable();
}

Я использую Angle v5.2.0

ПустьЯ знаю, что будет хорошим способом обогатить данные HTML с угловой стороны.Также укажите мне любой пакет npm, если он существует, чтобы сделать то же самое.

Заранее спасибо.

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