这是一个关于是否可以将 Handlebars lookup
帮助器与 if
block 帮助器嵌套的问答,如果不能,是否有其他解决方案?
下面的示例场景,我们需要检查“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}}
最佳答案
答案是“否”,因为 Handlebars 语法不允许将 if
block 助手与 lookup
助手嵌套。
解决方案是创建一个自定义帮助器(isItemExist
)来检查“arrayOne”中的项目是否存在于“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}}
希望这有帮助。
关于javascript - 嵌套 Handlebars 'lookup' 与 'if',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48863603/