角注入HTML模板作为字符串

时间:2019-01-21 10:35:51

标签: angular typescript

我希望使用Angular 6通过服务将电子邮件作为字符串发送到API。

我想要一个单独的HTML文件,其中包含此电子邮件模板的代码。然后,我想将此HTML模板传递给服务,然后将其发布到API。 (请注意-我不想将电子邮件模板构建为字符串。我想将其构建为HTML,然后将其转换为字符串)。

所以说我有以下文件:

  1. email-template.html-保存html电子邮件模板代码

  2. email.service.ts-以字符串形式发布电子邮件模板代码

我将如何实施?

这是我的服务

constructor(private httpClient: HttpClient) { }

  send(recipient, email) { <=== need that 'email' perameter to be the email template.html as string

    const object: Email = {
      FromAddress: environment.noreplyEmailAddress,
      ToAddress: recipient,
      MessageBodyText: null,
      MessageBodyHtml: email.template,
      Subject: email.subject
    };

    return this.httpClient.post(`${this.url}/api/storeemail`, object, httpOptions);
  }

1 个答案:

答案 0 :(得分:1)

您可以简单地将其导入组件中。这是一个working solution,当您单击Click me按钮时,它将html内容记录到控制台中。

这就是您的操作方式。首先在名为email-template.html的文件中创建一个模板,然后将其放置在某个位置(我将其放置在同一文件夹中)并按以下方式加载它。

import返回一个Promise。您可以在then

中做任何您想做的事
@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: [ './app.component.css' ]
})
export class AppComponent  {
  name = 'Angular';

  send() {
    import('./email-template.html').then(res => {
      console.log(res.default);
    });
  }
}