SendGrid动态模板中数组嵌套对象的多条件判断实现问题
SendGrid动态模板多条件联合判断正确实现方案
你的原有代码存在三处核心错误导致无法同时匹配两个字段:
- 标签嵌套不完整,violation级别的
equals开标签没有对应闭标签 - else分支的equals判断未添加
#前缀,不符合Handlebars块级助手语法 - 事件类型匹配逻辑没有和所有级别分支做关联绑定
正确实现代码
以下代码可以同时校验事件级别和事件类型两个字段,你可以按需调整不同组合对应的样式:
{{#each data.events}} {{#if this.event.level}} {{!-- 匹配违规级别场景 --}} {{#equals this.event.level "violation"}} {{!-- 匹配电池类违规事件 --}} {{#equals this.type "battery"}} <p style="color:#F00; font-size:30px;">•</p> {{/equals}} {{!-- 匹配温度类违规事件,可按需调整样式 --}} {{#equals this.type "temperature"}} <p style="color:#FF8C00; font-size:30px;">•</p> {{/equals}} {{/equals}} {{!-- 匹配警告级别场景 --}} {{#equals this.event.level "warning"}} {{!-- 匹配电池类警告事件 --}} {{#equals this.type "battery"}} <p style="color:#FF0; font-size:30px;">•</p> {{/equals}} {{!-- 匹配温度类警告事件,可按需调整样式 --}} {{#equals this.type "temperature"}} <p style="color:#FFD700; font-size:30px;">•</p> {{/equals}} {{/equals}} {{/if}} {{/each}}
SendGrid动态模板基于Handlebars语法,上述写法通过嵌套条件保证只有同时满足级别和类型两个判断条件时,才会渲染对应的样式元素,不会出现单个条件生效的问题。
内容的提问来源于stack exchange,提问作者Prasanth Perli
相关产品推荐
相关产品推荐

