替换电子邮件模板中的占位符

时间:2014-02-05 13:13:34

标签: javascript node.js angularjs

在电子邮件模块中替换占位符的更好方法是什么?

所以,我制作了一个邮件服务,其中包含templatenamereceiverMail和& locals。 locals具有占位符的值。

var locals = {
    username: "John",
    website: "w3schools.com",
    url: "http:// abc. com"
};

mail.sendMail('Registration', 'xyz.com', locals);

邮件服务的相关代码: -

var mailOptions = {
        from: "Abc <foo@blurdybloop.com>", // sender address
        to: email, // list of receivers
        subject: template_subject, // Subject line
        html: template_html // html body

template_html内容包含从mongodb中提取的placeholders的html正文。

locals是动态的&amp;可以增加或减少。

替换占位符的方法是什么?

模板: - (请注意,这些占位符是动态的,可以由管理员更改)

<p>
    Hi {{username}},
</p>
<p>
   Xyz would like you to join it's network on <a href="{{url}}">xyz</a>.
    <br />
    Our website {{ website }}
</p>

1 个答案:

答案 0 :(得分:2)

我们可以使用正则表达式来搜索并用用户指定的数据替换模板。

我在

上放了一个小型演示

Working DEMO

我在这里用实际数据替换模板。

我使用以下代码替换模板中的数据:

for (var i = 0; i < data.length; i++) {
        var obj = data[i];
        output +="<p>" + template.replace(/\<%=(.*?)\%>/g, function(match, property) {
            return obj[property];
        }) + "</p>";

 }