在Handlebars中不注册自定义助手能否判断字符串包含另一字符串
Handlebars 无自定义helper实现字符串包含判断的方案
标准原生Handlebars没有内置的字符串包含判断助手,不注册自定义helper的前提下,可通过以下方案实现需求:
方案1:上下文预计算(完全不需要额外helper)
在渲染模板前的JS逻辑层提前计算好字符串包含结果,作为布尔变量传入模板上下文即可:
// 渲染模板前处理上下文数据 const templateData = { message: '你的原始字符串内容', // 提前计算包含结果 hasSpecialMarker: message.includes('special marker') }
模板中直接使用if判断即可:
{{#if hasSpecialMarker}} <p>some other text</p> {{/if}}
方案2:使用预装的公共助手
如果你当前使用的Handlebars环境已经预装了handlebars-helpers工具库,无需自行注册helper即可直接使用内置的contains助手:
{{#contains message "special marker"}} <p>some other text</p> {{/contains}}
注意:你当前使用的
eq助手是全等匹配逻辑,只有当message完全等于匹配字符串时才会触发渲染,无法满足部分包含的匹配需求。
内容的提问来源于stack exchange,提问作者Bogos Robert
相关产品推荐
相关产品推荐

