javascript - 嵌套 Handlebars 'lookup' 与 'if'

标签 javascript handlebars.js helper

这是一个关于是否可以将 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/

相关文章:

Javascript:错误 800a025e 使用范围选择器

javascript - 防止缩放事件中的 d3 平移值超出范围

javascript - jQuery AJAX 请求返回原始 PHP,而不是运行 PHP 的结果

backbone.js - 如何在 Marionette 3+ 中实现已弃用的 CompositeView 功能?

c++ - 我怎样才能通过 getchar();不按回车,让它自动?

c# - 如何使用javascript获取 session 值

Ember.js:条件输入属性

javascript - 操作助手无法在 Handlebars 的 {{#if}} 内工作

java - 如何解决我的自动化代码中的错误?

php - CodeIgniter Helper Functions 可以使用数据库函数吗?