Каков наилучший способ замены содержимого в шаблоне электронной почты HTML в Angular 5?
У меня есть шаблон электронной почты 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();
}
Я использую угловой v5.2.0
Дайте мне знать, что будет хорошим способом обогатить данные HTML с угловой стороны. Также укажите мне на любой пакет npm, если существует, чтобы сделать то же самое.
Заранее спасибо.