2017-01-23 61 views
0

我有一个JSON,我有我的玉itterate:比较每个环上一个值与当前值

[ 

{ RefSlipNo: 
    { fieldlabel: 'RefSlipNo', 
    fieldname: 'RefSlipNo', 
    fieldtype: 'text', 
    required: '1', 
    default_value: '', 
    placeholder: 'Ref Slip No', 
    order_no: '1', 
    formgroup: 'vehicleDetails', 
    can_delete: '0', 
    status: '1' }, 
    BookNumber: 
    { fieldlabel: 'BookNumber', 
    fieldname: 'BookNumber', 
    fieldtype: 'text', 
    required: '1', 
    default_value: '', 
    placeholder: 'Book Number', 
    order_no: '2', 
    formgroup: 'vehicleDetails', 
    can_delete: '1', 
    status: '1' }, 
    SlipDate: 
    { fieldlabel: 'SlipDate', 
    fieldname: 'SlipDate', 
    fieldtype: 'text', 
    required: '1', 
    default_value: '', 
    placeholder: 'Slip Date', 
    order_no: '3', 
    formgroup: 'invoice', 
    can_delete: '1', 
    status: '1' }, 
    FillFuelDate: 
    { fieldlabel: 'FillFuelDate', 
    fieldname: 'FillFuelDate', 
    fieldtype: 'text', 
    required: '1', 
    default_value: '', 
    placeholder: 'Fill Fuel Date', 
    order_no: '4', 
    formgroup: 'invoice', 
    can_delete: '1', 
    status: '1' } 
] 

我想使用字段集和传说formgroup像的基础上:

-------invoice--------------------| 
FillFuelDate :     | 
SlipDate :      | 
----------------------------------| 

-------vehicleDetails-------------| 
RefSlipNo :      | 
BookNumber :      | 
----------------------------------| 

但无法获得逻辑。如何在玉石中循环。我想要获得所有字段列表,其中包含一个fieldset下的invoice formgroup和一个fieldset下的所有vehicledetails,如上所示。

回答

0

在JavaScript中,这样定义一个函数,并把它传递一个本地你的哈巴狗的模板:

function groupByFormGroup(fields) { 
    const formGroups = []; 
    const formGroupsByName = {}; 
    fields.forEach(field => { 
    if (!formGroupsByName[field.formGroup]) { 
     formGroupsByName[field.formGroup] = {name: field.formGroup, fields: []}; 
     formGroups.push(formGroupsByName); 
    } 
    formGroupsByName[field.formGroup].push(field); 
    }); 
} 

然后在模板哈巴狗,做这样的事情:

each formGroup in groupByFormGroup(fields) 
    fieldset 
    legend= formGroup.name 
    each field in formGroup.fields 
     label= field.fieldLabel 
     input(type="text" name=field.fieldName)