javascript - Handlebars 内变量表达式

标签 javascript handlebars.js

我想从数组中检索一个特定元素,{{page.myArray}}

我有变量 {{my-index}} 中元素的索引,但我不能只插入 {{page.myArray.[my-index ]}}{{page.myArray.[{{my-index}}]

我该如何去做呢?我已经尝试了 SO 和 Handlebars 文档中的一些内容,但我一生都无法想出解决方案。希望善良、慷慨的人能够向我伸出援助之手。

最佳答案

答案是否定的,因为 Handlebars 语法不允许嵌套语句。 但是,您可以编写自定义 Handlebars 助手来实现相同的目的。

将您的 JSON 结构视为,

{
  "my-index": 1,
  "page": {
    "myArray": [
      "a",
      "b",
      "c"
    ]
  }
}

您的模板可以如下编写,即 helper(indexOf) 调用本身。

{{#indexOf page.myArray my-index}}{{/indexOf}}

辅助定义是,

Handlebars.registerHelper('indexOf', function(array, value) {
  return array[value];
});

这将在数组 myArray 的索引位置 1 中打印 b 作为输出。

使用 http://tryhandlebarsjs.com 进行测试.

希望这有帮助。

关于javascript - Handlebars 内变量表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49370777/

相关文章:

javascript - 如何在 Handlebars 中设置 (!)?

javascript - 使用循环索引访问 Handlebars 数组

javascript - 如何比较 Handlebars 中的值?

javascript - Node.js Express 应用程序 : if cookie is present, 从服务器端向元素添加 CSS 类

javascript - 来自 Google Analytics api 的 JSON 响应

javascript - chrome....onBeforeRequest...() URL 列表未按预期运行

javascript - 如何将 Angular 中的日期作为时间戳保存到 Firestore?

javascript - 当 ReactJS 不活动时添加类以链接

javascript - 使用 meteor 模板助手获取 DOM 元素

javascript - 解析字符串以获取给定属性值的 href