Angular 2如何编译模板并保存结果html

时间:2017-04-26 02:19:03

标签: angular angular2-template templating

好的,到现在为止我必须为电子邮件创建一个正文。

我需要一个模板,用我已经拥有的数据(js Object)插入它,并在变量中生成html字符串,这样我就可以将这个主体发送到服务器了实际上是发送电子邮件。

我不确定使用其他模板引擎,例如把手来生成这个html。

有没有办法使用角度2模板引擎?请记住,我不需要显示它,我只想将其保存在内存中。

如果我不能使用它我应该使用什么?有没有最知名的或推荐的aprouch?

1 个答案:

答案 0 :(得分:0)

不确定为什么需要它,但这里有一些想法:

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 {}