2017-01-23 10 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' } 
] 

я хочу использовать Fieldset и легенды на основе formgroup как:

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

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

Но не смог получить логику. Как зацикливать его в нефрит. Я хочу получить список всех полей с группой счетов-фактур под одним полем и всеми транспортными средствами под 1 полем, как показано выше.

ответ

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)