我在一个常见的javascript问题上苦苦挣扎,主要是因为我不知道在Google中找到解决方案的关键词。 我想在纯javascript中做什么:
var obj = {label: 'Name', type: 'text', position: 0};
var name = 'label';
var temp = obj."name" // = obj.label = Name
并在meteorJS模板中使用它:
data = [
{
"Name" : "Task 1",
"CreationDate" : ISODate("2014-06-03T19:47:48.252Z"),
"EndDate" : ISODate("2014-07-03T19:47:48.252Z")
},
{
"Name" : "Task 2",
"CreationDate" : ISODate("2014-06-04T19:47:48.252Z"),
"EndDate" : ISODate("2014-07-04T19:47:48.252Z")
}
}
columns = [
{label: 'Name'},
{label: 'Creation Date'},
{label: 'End Date'}
]
{{#each data}}
<tr>
{{#each columns}}
<td>{{data.label}}</td>
{{/each}}
</tr>
{{/each}}
答案 0 :(得分:0)
所以我的第一个问题(纯javascript语法)就可以了。感谢
var obj = {label: 'Name', type: 'text', position: 0};
var name = 'label';
var temp = obj[name]; //Works fine
对于我的第二个问题,这种方式有效(受How to access outer {{#each}} collection value in the nested loop启发):
{{#each data}}
<tr>
{{#each columns}}
<td>{{attr .. label}}</td>
{{/each}}
</tr>
{{/each}}
Template.worksheets.helpers({
attr : function (outItem, inItem) {
return outItem[inItem];
}
});
但它有点难看......