Мы столкнулись с проблемой при использовании ag-grid с модальным наложением. У нас есть функция, где мы должны показывать модальное поле, чтобы отображать расширенные элементы при щелчке строки. Теперь, когда этот модальный блок отклонен, а затем пользователь пытается изменить размер столбцов ag-grid, требуется около 10-15 se c, чтобы противостоять первоначальному изменению размера в реальном времени. Кроме того, данные в этом модальном поле заполняются динамически, вот код для того же: -
for (const data of pop_data) {
if (count == pop_data.length-1) {
bn += data;
}
else {
bn += data+' </br>';
}
count++
}
jQuery(".ember-modal-dialog").addClass("data-show-more")
jQuery(".ember-modal-dialog").html(bn)
Чтобы показать / скрыть этот модал, мы используем переменную ember. js:
{{#if isShowingModal}}
{{#modal-dialog
onClose=(action "toggleModal")
targetAttachment="center"
translucentOverlay=true
}}
{{modalMessage}}
{{/modal-dialog}}
{{/if}}
Вот определение ag-grid: -
let columnDefs = [
{
headerName: "A", field: "email",
width: 300
},
{
headerName: "B", field: "enabled",
width: 93
},
{
headerName: "C", field: "f_l",
width: 200
},
{ headerName: "D", field: "mp", hide: !assign_features.includes("mp"), width:105 },
{ headerName: "OH", field: "oh", hide: !assign_features.includes("oh"), width:130},
{ headerName: "R", field: "vsr", hide: !assign_features.includes("vsr") },
{ headerName: "EC", field: "ir", hide: !assign_features.includes("ir") },
{ headerName: "UR", field: "ir", hide: !assign_features.includes("vsr") },
{ headerName: "MU", field: "mu", hide: !assign_features.includes("mu") },
{ headerName: "MC", field: "mc", hide: !assign_features.includes("mc")},
{
headerName: "CP",
field: 'buyers',
cellRenderer: 'modalbuyerRenderer',
cellClass: 'cell-wrap-text',
autoHeight: 'true',
width: 400,
}
];
let gridOptions = {
columnDefs: columnDefs,
components: {
'modalbuyerRenderer': mbr
},
defaultColDef: {
sortable: true,
resizable: true,
width: 130,
sortingOrder: ['asc','desc'],
},
onRowClicked: function(event) {
onRowClickedEvent(event);
}
},
};