如何在Handlebars.js的if语句块中执行字符串包含检查
在Handlebars.js的if语句中实现字符串包含检查
Handlebars本身没有内置的字符串包含判断功能,要实现你需要的逻辑,得先自定义一个模板助手(helper),再在模板里调用它。
1. 注册自定义contains助手
在你的JavaScript代码中注册一个用于检查字符串是否包含指定子串的助手:
// 基础版本(支持ES6及以上环境) Handlebars.registerHelper('contains', function(str, substr) { // 先判断原字符串是否存在,避免空值报错 if (!str) return false; return str.includes(substr); }); // 兼容旧环境的版本(用indexOf替代includes) Handlebars.registerHelper('contains', function(str, substr) { if (!str) return false; return str.indexOf(substr) !== -1; });
2. 在模板中使用助手实现逻辑
按照你的场景,先判断loop_var.imageUri是否存在,再通过contains助手检查是否包含"foo",渲染不同尺寸的img标签:
{{#if loop_var.imageUri}} {{#if (contains loop_var.imageUri "foo")}} <img src="{{loop_var.imageUri}}" width="50" height="50" alt="Content Image"> {{else}} <img src="{{loop_var.imageUri}}" width="150" height="150" alt="Content Image"> {{/if}} {{/if}}
内容的提问来源于stack exchange,提问作者user352290
相关产品推荐
相关产品推荐

