Tengo un objeto json, que contiene los siguientes datos.
var myData = [{ "sNo": "1.0", "boqName": "Installation of pole 11 KV", "unit": "Nos", "opportunityBoqOverHeadMasterList": [{ "opportunityBoqOverHeadMasterId": 14, "value": 41.3 }, { "opportunityBoqOverHeadMasterId": 16, "value": 41.3 }, { "opportunityBoqOverHeadMasterId": 24, "value": 100 } ] }, { "sNo": "2.0", "boqName": "Installation of pole 33 KV", "unit": "Nos", "opportunityBoqOverHeadMasterList": [{ "opportunityBoqOverHeadMasterId": 15, "value": 52.92 }, { "opportunityBoqOverHeadMasterId": 17, "value": 52.92 }, { "opportunityBoqOverHeadMasterId": 25, "value": 0 } ] }, ];}
necesito mostrar el valor de chanceBoqOverHeadMasterList al lado de la celda unitaria. Por favor, ayúdenme a mostrar datos en handsontable.
Consulte jsfiddle para ver un ejemplo de trabajo https://jsfiddle.net/Umanath16/aty5wfg7/22/
Podría intentar procesar los datos. Observe a continuación que cambié su matriz de columns , creé una nueva variable myNewData y creé bucles anidados para formatear los datos.
var columns = [ { "data": "sNo" }, { "data": "boqName" }, { "data": "unit" }, , { "data": "Percentage1" }, { "data": "Percentage2" }, { "data": "Percentage3" } ];Cambiar el objeto de datos...
var myNewData = []; for (var i = 0; i < myData.length; i++) { myNewData.push({ sNo: myData[i].sNo, boqName: myData[i].boqName, unit: myData[i].unit }); for (var j = 0; j < myData[i].opportunityBoqOverHeadMasterList.length; j++) { myNewData[i]["Percentage"+(j+1)] = myData[i].opportunityBoqOverHeadMasterList[j].value; } } hot = new Handsontable(example, { data: myNewData, rowHeaders: true, columns: columns, rowHeaderWidth: 100, colWidths: 120, colHeaders: colHeaders }); }Esta es solo una posible solución. Piense en posibles mejoras. ¿Qué pasa si los datos no tienen los mismos campos? Tendría que ser dinámico independientemente de los nombres de los campos. También, ¿cómo mejorarías los bucles, etc.?