我正在使用Typescript驱动的Angular 2应用生成一个包含一些预填充信息的电子邮件。这将使用用户的默认电子邮件客户端生成电子邮件。目前,当我在组件中构建如下字符串时,这是有效的:
greetingEmail = `user@example.com?subject=Family%20Greeting%20Email&body=message%20goes%20here`;
我在视图中的href中使用它。我的相关视图代码如下所示:
<a [href]="'mailto:' + greetingEmail" tabindex="-1">Generate Greeting Email</a>
但是当我尝试使用es6 / ecma2015模板文字时,电子邮件仍然通过我的defaut电子邮件客户端按预期生成,但电子邮件的各个字段(即emailAddress,subject,body)显示为'undefined' 。这就是我正在尝试的:
emailAddress: 'user@example.com';
subject: 'Family Greeting Email';
body: 'This is where the body of the email goes...';
greetingEmail = `${this.emailAddress}?subject=${this.subject}&body=${this.body}`;
是否有一个特殊原因导致模板文字选项在这种情况下不起作用,或者为什么字段在运行时未定义?或者是其他问题?
答案 0 :(得分:1)
我使用了@ Rob关于&#34;这个&#34;的评论启发了调整。和范围。一旦我将变量放在一个对象中,并从该上下文调用,模板文字选项就起作用了:
emailProps = {
emailAddress: 'user@example.com',
subject: 'Family Greeting Email',
body: 'This is where the body of the email goes...'
};
greetingEmail = `${this.emailProps.emailAddress}?subject=${this.emailProps.subject}&body=${this.emailProps.body}`;
答案 1 :(得分:0)
我看到的最大问题是你的变量。在Angular2中它将是:
emailAddress:string = 'user@example.com';
subject:string = 'Family Greeting Email';
body:string = 'This is where the body of the email goes...';
sendEmail = this.emailAddress + '?subject=' + this.subject + '&body=' + this.body`;