【发布时间】:2019-05-15 04:03:34
【问题描述】:
我正在开发一些发送通知电子邮件的功能。可能有也可能没有指定的联系人。所以当我最初设置邮件合并时,这就是我正在做的事情:
var template = nlapiCreateEmailMerger(_TEMPLATE_ID);
template.setEntity("customer", customerId);
if (!isEmpty(contactID)) {
template.setEntity("contact", contactID);
}
因为可能有也可能没有指定联系人,所以在我的电子邮件模板中,我使用了 Freemarker 来检查是否有联系人。如果是这样,它会添加他们的名字和姓氏。如果没有,它会从客户记录中添加“公司名称”值。这就是我所拥有的:
<#if contact.id?has_content>${contact.firstName} ${contact.lastName}<#else>${customer.companyName}</#if>
我遇到的问题是,当添加联系人时,它会很好地显示联系人姓名。但是,如果没有添加联系人,则条件语句完全失败。即使“公司名称”有值,也没有任何显示。我尝试了以下方法,但条件语句始终解析为 false:
<#if contact?has_content>${contact.firstName} ${contact.lastName}<#else>${customer.companyName}</#if>
我试过看看发生了什么,如果我将所有值放在条件语句之外,我会在我期望的时候得到值,在我期望的时候得到空格。所以我知道数据本身没有问题,据我所知。
我知道我可以通过创建两个单独的模板并在脚本中选择正确的模板来解决这个问题,但是当必须进行更改时这会变得很麻烦,我宁愿只维护一个模板。
所以,我想真正的问题是,无论是否添加联系人记录,在适用的条件语句中使用什么合适的值?
【问题讨论】:
标签: javascript html netsuite freemarker