У меня есть следующий код в моем html-классе:
<ag-grid-aurelia #agGrid class = "ag-theme-balham" style = "width: 100%; height: 350px;" #agGrid grid-ready.call = "onGridReady()"
grid-options.bind = "filesThatAreMalwareOptions">
<ag-grid-column header-name = "date" field = "date" width.bind = "300"></ag-grid-column>
<ag-grid-column header-name = "fileHash" field = "fileHash" width.bind = "300"></ag-grid-column>
<ag-grid-column header-name = "fileName" field = "fileName" width.bind = "300"></ag-grid-column>
<ag-grid-column header-name = "fileSize" field = "fileSize" width.bind = "300"></ag-grid-column>
<ag-grid-column header-name = "mimeType" field = "mimeType" width.bind = "300"></ag-grid-column>
<ag-grid-column header-name = "Malware" field = "Malware" width.bind = "300"></ag-grid-column>
<ag-grid-column header-name = "Virustotal-Link" field = "Virustotal-Link" width.bind = "300"></ag-grid-column>
</ag-grid-aurelia>
И следующий код в моем классе TypeScript:
filesThatAreMalwareOptions:GridOptions = {
rowData: []
};
getValueFromRequest(queryEndpoint){
this.http
.fetch(queryEndpoint, {
mode: "cors"
})
.then(result => result.json()
).then(body => {
if (queryEndpoint == "TestFileData"){
this.filesThatAreMalwareOptions.rowData = JSON.parse(body);
}
});
Если я хочу загрузить данные из конечной точки моей службы, гирд отображает «Нет строк для отображения». Если я жестко закодирую rowData, например:
filesThatAreMalwareOptions:GridOptions = {
rowData: [ {date: '02.04.1990', fileHash: 'X', fileName: 'X', fileSize: 3245, mimeType: 'PDF'}]
};
Данные отображаются в сетке. Где проблема с загрузкой данных из сервиса?
Вместо того, чтобы напрямую устанавливать свойство rowData, вам нужно будет использовать вызов API:
this.filesThatAreMalwareOptions.api.setRowData(JSON.parse(body));
См. ссылку на API: https://www.ag-grid.com/javascript-grid-api/