2015-12-28 5 views
1

Я показываю серию графиков в угловом приложении. Мне нужно обновить источник данных для каждого графика и перерисовать его. Мой источник данных обновляется с использованием услуги «Угловая», которая возвращает обещание. Я могу получить данные для обновления, но не может показаться, что графики будут перерисовываться после завершения. Можете ли вы оказать некоторую помощь? Ниже приведена информация о источниках данных для моей диаграммы.Обновить диаграмму Кендо при обновлении DataSource с помощью обещания

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" 
       } 
      } 
     } 
    } 
}); 
+0

Вы пробовали это? http://stackoverflow.com/questions/14029364/how-to-refresh-a-grid-and-chart –

+0

Я пробовал это, и проблема, с которой я столкнулась, заключается в том, что обновление называется сразу после чтения, но перед обещанием возвращается. Мне нужно обновить после того, как обещание будет возвращено, так как это когда мои данные действительно обновляются. – James

ответ

0

Мне удалось передать диаграмму в функцию чтения с использованием данных параметров, а затем вызвать обновление после возврата обещания.

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" 
       } 
      } 
     } 
    } 
});