Как обновить данные через json в ag-Grid и сравнить старые json с новыми? - PullRequest
0 голосов
/ 28 декабря 2018

Я вызываю функцию, которая запрашивает данные json, а затем я устанавливаю ее с помощью gridOptions.api.setRowData (data);

Но это не запускает "agAnimateShowChangeCellRenderer"

как можноя сравниваю свой старый JSON с новым и отображаю изменения?я хочу, чтобы он мигал и сравнивал значения,

Мне нравится перезагружать json каждые x секунд, и мне нравится сохранять свои фильтры и сортировку.

Можете ли вы указать мне в правильном направлении?

Спасибо!

    var gridDiv = document.querySelector('#myGrid');

    var selectedMonth = 0;
    var gridOptions = {

        columnDefs: [{
                headerName: 'Country',
                field: 'country'
            },
            {
                headerName: 'City',
                field: 'city',
                cellRenderer: 'agAnimateShowChangeCellRenderer',
                sort: 'desc',
                filter: "agTextColumnFilter",
                filterParams: {
                    newRowsAction: 'keep'
                }
            }, // text filter},
            {
                headerName: 'Jan',
                field: 'jan_act',
                cellRenderer: 'agAnimateShowChangeCellRenderer',
                filter: "agNumberColumnFilter",
                filterParams: {
                    newRowsAction: 'keep',
                    defaultOption: 'greaterThan'
                }
            }, // number filter
            {
                headerName: 'Feb',
                field: 'feb_act',
                cellRenderer: 'agAnimateShowChangeCellRenderer'
            },
            {
                headerName: 'Mar',
                field: 'mar_act'
            },
            {
                headerName: 'Apr',
                field: 'apr_act'
            },
            {
                headerName: 'May',
                field: 'may_act'
            },

        ],
        floatingFilter: true,
        enableSorting: true,
        enableColResize: true,
        enableCellChangeFlash: true,
        refreshCells: true,

    };



    new agGrid.Grid(gridDiv, gridOptions);

    jsonLoad(function(data) {
        gridOptions.api.setRowData(data);
        gridOptions.api.sizeColumnsToFit();
    });

    var intervalID = window.setInterval(refesh_json, 5000);

    function refesh_json() {
        jsonLoad(function(data) {

            gridOptions.api.setRowData(data);

        });
    }

    function jsonLoad(callback) {

        var xhr = new XMLHttpRequest();
        xhr.open('GET', 'file:///C:/Users/Laptop-mw/Desktop/Getittowork2/NEW_index_site/monthlySales.json'); // by default async
        xhr.responseType = 'json'; // in which format you expect the response to be

        xhr.onload = function() {
            if (this.status == 200) { // onload called even on 404 etc so check the status
                callback(this.response);
            }
        };

        xhr.onerror = function() {
            console.log('loading data error');
        };

        xhr.send();
    }
...