Как загрузить данные в rowData в ag-grid? - PullRequest
1 голос
/ 10 апреля 2019

В моем 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'}]
};

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

1 Ответ

1 голос
/ 11 апреля 2019

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

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

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

...