使用promise更新DataSource时刷新Kendo图表

时间:2015-12-28 15:20:47

标签: javascript angularjs kendo-datasource kendo-chart

我在Angular应用程序中显示一系列图表。我需要更新每个图表的数据源并重新绘制它。我的dataSource使用Angular服务进行更新,该服务返回一个promise。我可以获取要更新的数据,但一旦完成,似乎无法重绘图形。你能提供一些帮助吗?以下是我的图表的数据源信息。

chartDataEl.dataSource = new kendo.data.DataSource({
    transport: {
        type: 'json',
        read: function(options) {
            var request = vm.shipmentManagementRequest;
            request.RequestType = myChart.chartData.htmlID;
            shipmentService.getBasicChartData(request)
                .then(function(result) {
                    options.success(result.data);
                }).catch(function(error) {
                    options.error(error);
                });
        }
    },
    sort: {
        field: "date",
        dir: "asc"
    },
    schema: {
        model: {
            fields: {
                date: {
                    type: "date"
                }
            }
        }
    }
});

1 个答案:

答案 0 :(得分:0)

我能够使用选项数据将图表传递给read函数,然后在promise返回后调用refresh。

chartDataEl.dataSource = new kendo.data.DataSource({
    transport: {
        type: 'json',
        read: function(options) {
            shipmentService.getBasicChartData()
                .then(function(result) {
                    options.success(result.data);
                    var chart = options.data.chart;
                    chart.refresh();
                }).catch(function(error) {
                    options.error(error);
                });
        }
    },
    sort: {
        field: "date",
        dir: "asc"
    },
    schema: {
        model: {
            fields: {
                date: {
                    type: "date"
                }
            }
        }
    }
});
相关问题