Как загрузить данные в rowData в ag-grid?

У меня есть следующий код в моем 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'}]
};

Данные отображаются в сетке. Где проблема с загрузкой данных из сервиса?

🤔 А знаете ли вы, что...
Aurelia - это современный фреймворк для разработки веб-приложений, написанный на JavaScript.


1
2 553
1

Ответ:

Решено

Вместо того, чтобы напрямую устанавливать свойство rowData, вам нужно будет использовать вызов API:

this.filesThatAreMalwareOptions.api.setRowData(JSON.parse(body));

См. ссылку на API: https://www.ag-grid.com/javascript-grid-api/