车把按 属性 名称动态显示对象 属性
Handlebars display object property dynamically by property name
{{#each modelItems as |item|}}
<tr>
<td>
{{ item.name }}
</td>
{{#each selectedColumns as |extraCol|}} // line 27
<td>
{{ extraCol }}
{{ item[concat '"' extraCols '"'] }} // what I tried
{{ item[(concat '"' extraCols '"')] }}
</td>
{{/each}}
</tr>
{{/each}}
在模板中我有一个 modelItems
的列表。在 table 中显示了一些特定的列,但在 selectedColumns
列表中也可能有可选的列。
作为第 27 行,我正在循环 selectedColumns
来显示它们,但没有运气。
Handlebars 如何通过 属性 名称动态显示对象 属性?
在 JS 中它会像
foreach (items in selectedColumns) {
console.log(item.name);
foreach (column in selectedColumns) {
console.log(item['"'+column+'"']);
}
}
车把内部 {{
您不能编写 JS 代码,因此您无法使用 []
访问集合中的项目。而是写一个助手,returns 选中的项目。
我写了个例子here
还有 get helper you can access a property of an object dynamically. If you combine this with the subexpressions of handlebars, you can still use the concat 助手。
您的代码将类似于:
{{#each modelItems as |item|}}
<tr>
<td>
{{ item.name }}
</td>
{{#each selectedColumns as |extraCol|}}
<td>
{{get item (concat '"' extraCol '"')}}
</td>
{{/each}}
</tr>
{{/each}}
{{#each modelItems as |item|}}
<tr>
<td>
{{ item.name }}
</td>
{{#each selectedColumns as |extraCol|}} // line 27
<td>
{{ extraCol }}
{{ item[concat '"' extraCols '"'] }} // what I tried
{{ item[(concat '"' extraCols '"')] }}
</td>
{{/each}}
</tr>
{{/each}}
在模板中我有一个 modelItems
的列表。在 table 中显示了一些特定的列,但在 selectedColumns
列表中也可能有可选的列。
作为第 27 行,我正在循环 selectedColumns
来显示它们,但没有运气。
Handlebars 如何通过 属性 名称动态显示对象 属性?
在 JS 中它会像
foreach (items in selectedColumns) {
console.log(item.name);
foreach (column in selectedColumns) {
console.log(item['"'+column+'"']);
}
}
车把内部 {{
您不能编写 JS 代码,因此您无法使用 []
访问集合中的项目。而是写一个助手,returns 选中的项目。
我写了个例子here
还有 get helper you can access a property of an object dynamically. If you combine this with the subexpressions of handlebars, you can still use the concat 助手。
您的代码将类似于:
{{#each modelItems as |item|}}
<tr>
<td>
{{ item.name }}
</td>
{{#each selectedColumns as |extraCol|}}
<td>
{{get item (concat '"' extraCol '"')}}
</td>
{{/each}}
</tr>
{{/each}}