这是关于是否可以使用lookup
块助手嵌套Handlebars if
助手的Q& A,如果没有,是否有任何替代解决方案?
下面的示例场景,我们需要检查'arrayOne'中的项是否存在于'arrayTwo'中。
{{#each arrayOne}}
{{#if lookup ../arrayTwo @index}}
{{this}} - This arrayOne item is present in arrayTwo
{{else}}
{{this}} - This arrayOne item is NOT present in arrayTwo
{{/if}}
{{/each}}
答案 0 :(得分:1)
答案为“否”,因为Handlebars语法不允许将if
块助手与lookup
助手嵌套。
解决方案是创建一个自定义帮助器(isItemExist
)来检查'arrayTne'中的项是否存在于'arrayTwo'中,
Handlebars.registerHelper("isItemExist", function(array, value, options) {
return value < array.length ? options.fn(this) : options.inverse(this);
});
模板就是,
{{#each arrayOne}}
{{#isItemExist ../arrayTwo @index}}
{{this}} - This arrayOne item is present in arrayTwo
{{else}}
{{this}} - This arrayOne item is NOT present in arrayTwo
{{/isItemExist}}
{{/each}}
希望这有帮助。