可变内部把手表达

时间:2018-03-19 19:20:19

标签: javascript handlebars.js

我有一个我想要从数组{{page.myArray}}中检索的特定元素。

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

我该怎么做呢?我已经尝试了SO和Handlebars文档中的一些东西,但我不能为我的生活提出一个解决方案。希望善良和慷慨的灵魂能在这里给我一个帮助。

1 个答案:

答案 0 :(得分:2)

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

将您的JSON结构视为,

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

您的模板可以写成如下,这是帮助(indexOf)调用本身。

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

辅助定义是,

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

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

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

希望这有帮助。