meteor:当属性名称未知时,如何迭代对象数组

问题描述:

我有一个对象数组,我必须迭代,但我不知道对象的属性名称。meteor:当属性名称未知时,如何迭代对象数组

{{# each }} 

{{??}} {{/每}}

+1

为什么你不知道在对象键的名字吗? – Sean

+0

我想你至少知道你从哪里得到它? –

+0

@Sean我的密钥正在动态生成。 – dpatnaik

把它分解成两个#each秒。外层#each遍历对象数组。 #each内部调用一个模板帮助程序,该帮助程序返回包含该对象每个属性的标签和值的对象数组。

模板:

{{#each arrayOfObjects}} 
    {{#each getAllFields}} 
    <div class="item"> 
     {{this.label}} <span class="field-value">{{this.value}}</span> 
    </div> 
    {{/each}} 
{{/each}} 

助手:

getAllFields: function() { 
    let fields = []; 
    const unknownObject = this; 

    _.each(Object.keys(unknownObject), function(theKey) { 
     fields.push({label: theKey, value: unknownObject[theKey] }); 
    }); 

    fields = _.sortBy(fields, 'label'); 
    return fields; 
}