在车把小胡子内按键访问 array/object 个变量
Accessing array/object variables by key, within a handlebars mustache
我似乎找不到这样做的方法,并且尝试了子表达式和 Whosebug 上发布的各种其他答案 - 但他们似乎都假设我事先知道我正在使用的密钥。
我有以下对象:
{
fields: {
1: {
complete: 1,
submitted: 0
},
2: {
complete: 1,
submitted: 0
}
}
等等等
在我的 Handlebars 模板中,我正在遍历一组对象。该数组中的每个对象都有一个 field_id
键,它是一个与上例中的 1 或 2 匹配的数字。
我需要访问上述数组结构中的变量,基于当前正在循环的[=39=]。我试过:
{{fields[(field_id)].complete}}
{{fields[{{field_id}}].complete}}
{{fields.(field_id).complete}}
{{fields.({{field_id}}).complete}}
其中 none 有效。
有办法吗?
我通过注册一个自定义助手完成了这项工作:
Handlebars.registerHelper( 'getfield', function ( data, field_id, key ) {
var val = ( data[ field_id ] ) ? data[ field_id ][ key ] : '';
return val;
} );
然后在我的模板中使用它:
{{getfield fields field_id 'complete'}}
我不会为此创建一个自定义助手。相反,我会使用现有的 Lookup helper partnered with the with block helper:
{{#with (lookup fields field_id) as |field|}}
{{field.complete}}
{{/with}}
或者,您可以将查找助手与 subexpression:
一起使用
{{lookup (lookup fields field_id) 'complete'}}
我似乎找不到这样做的方法,并且尝试了子表达式和 Whosebug 上发布的各种其他答案 - 但他们似乎都假设我事先知道我正在使用的密钥。
我有以下对象:
{
fields: {
1: {
complete: 1,
submitted: 0
},
2: {
complete: 1,
submitted: 0
}
}
等等等
在我的 Handlebars 模板中,我正在遍历一组对象。该数组中的每个对象都有一个 field_id
键,它是一个与上例中的 1 或 2 匹配的数字。
我需要访问上述数组结构中的变量,基于当前正在循环的[=39=]。我试过:
{{fields[(field_id)].complete}}
{{fields[{{field_id}}].complete}}
{{fields.(field_id).complete}}
{{fields.({{field_id}}).complete}}
其中 none 有效。
有办法吗?
我通过注册一个自定义助手完成了这项工作:
Handlebars.registerHelper( 'getfield', function ( data, field_id, key ) {
var val = ( data[ field_id ] ) ? data[ field_id ][ key ] : '';
return val;
} );
然后在我的模板中使用它:
{{getfield fields field_id 'complete'}}
我不会为此创建一个自定义助手。相反,我会使用现有的 Lookup helper partnered with the with block helper:
{{#with (lookup fields field_id) as |field|}}
{{field.complete}}
{{/with}}
或者,您可以将查找助手与 subexpression:
一起使用{{lookup (lookup fields field_id) 'complete'}}