javascript - 在 Handlebars mustache 内按键访问数组/对象变量

标签 javascript arrays object handlebars.js mustache

我似乎找不到一种方法来做到这一点,并且尝试了子表达式和 StackOverflow 上发布的各种其他答案 - 但它们似乎都假设我提前知道我正在使用的 key 。

我有以下对象:

{
    fields: {
        1: {
            complete: 1,
            submitted: 0
        },
        2: {
            complete: 1,
            submitted: 0
        }
}

等等。等等

在我的 Handlebars 模板中,我循环遍历对象数组。该数组中的每个对象都有一个 field_id 键,该键是与上例中的 1 或 2 匹配的数字。

我需要根据当前循环的 field_id 来访问上述数组结构中的变量。我试过:

{{fields[(field_id)].complete}}

{{fields[{{field_id}}].complete}}

{{fields.(field_id).complete}}

{{fields.({{field_id}}).complete}}

但它们都不起作用。

有办法做到这一点吗?

最佳答案

不会为此创建自定义助手。相反,我会使用现有的 Lookup helperwith block helper 合作:

{{#with (lookup fields field_id) as |field|}}
    {{field.complete}}
{{/with}}

或者,您可以使用带有 subexpression 的查找助手。 :

{{lookup (lookup fields field_id) 'complete'}}

关于javascript - 在 Handlebars mustache 内按键访问数组/对象变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39306840/

相关文章:

c++ - 使用 vector 查找公共(public)元素的问题

Java 对象实例化

javascript - 数组 .push 在 Promise 函数中不起作用

javascript - Vuejs - 更新数组中的对象

javascript - 如何从 Chrome 扩展程序在 Windows 机器上打开另存为对话框?

javascript - 以数组形式发送 Ajax 数据与以手动字符串形式发送不同

java - 可以使用线性搜索来查找循环(​​循环)数组中的最小数字

c# - 窗口点打开方法出现下载 csv 文件时页面无法显示的问题

javascript - 多个数组到 JavaScript 对象

arrays - 如何向数组中的现有对象添加新的键和值(Angular)