Ok, ahora tengo que crear un cuerpo para un correo electrónico.
Necesito tomar una plantilla, interpolarla con los datos que ya tengo (objeto js) y tener esta cadena html resultante en una variable , para poder enviar este cuerpo a un servidor que realmente enviará el correo electrónico.
No estoy seguro de usar otro motor de plantillas, manillares por ejemplo, para generar este html.
¿Hay alguna manera de usar el motor de plantilla angular 2? Tenga en cuenta que no necesito mostrarlo, quiero mantenerlo solo en la memoria.
Si no puedo usarlo, ¿qué debo usar? ¿Hay algún enfoque más conocido o recomendado?
No estoy seguro de por qué lo necesita, pero aquí hay algunas ideas:
import {Component, NgModule, Input, VERSION, ChangeDetectorRef} from '@angular/core' import {BrowserModule} from '@angular/platform-browser' import {Injectable, ComponentFactoryResolver, ApplicationRef, Injector} from '@angular/core'; @Component({ selector:'my-cmp', template: 'here is {{title}}' }) export class MyComponent { @Input() title: string; } @Component({ selector: 'my-app', template: ` <input #inp> <button (click)="create(inp.value)">Create</button> `, }) export class App { constructor(private componentFactoryResolver: ComponentFactoryResolver, private appRef: ApplicationRef, private injector: Injector) { } create(title) { let factory = this.componentFactoryResolver.resolveComponentFactory(MyComponent); let ref = factory.create(this.injector); ref.instance.title = title; this.appRef.attachView(ref.hostView); console.log(ref.location.nativeElement); this.appRef.detachView(ref.hostView); } } @NgModule({ imports: [ BrowserModule ], declarations: [ App , MyComponent], entryComponents: [MyComponent], bootstrap: [ App ] }) export class AppModule {}