{{#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
列表。在表中,显示了一些某些列,但是selectedColumns
列表中可能也有可选的列。作为第27行,我正在通过selectedColumns
循环以显示它们,但没有运气。如何通过属性名称动态显示对象属性?
在JS中,它会像
foreach (items in selectedColumns) {
console.log(item.name);
foreach (column in selectedColumns) {
console.log(item['"'+column+'"']);
}
}
使用Get Helper,您可以动态访问对象的属性。如果将其与车把的子表达结合在一起,则仍然可以使用Concat助手。
您的代码看起来像:
{{#each modelItems as |item|}}
<tr>
<td>
{{ item.name }}
</td>
{{#each selectedColumns as |extraCol|}}
<td>
{{get item (concat '"' extraCol '"')}}
</td>
{{/each}}
</tr>
{{/each}}
在车把{{
中您无法编写JS代码,因此您无法使用[]
访问集合中的项目。而是写一个助手,该助手返回所选项目。
我在这里写了一个示例