Я использую Kendo и Angular вместе. Я использую диаграммы кендо для отображения некоторых данных, полученных из базы данных. У меня есть простой сервис, использующий Angular $resource для получения данных из хранилища. Это выглядит так:
app.factory('statsData', function ($resource) {
var Stats= $resource('myadress/stats/:id', { id: '@id' });
return {
get: function (id) {
return Stats.get({ id: id});
}
}
});
Итак, если я выполню это, я получу массив объектов, который будет выглядеть так:
[
{
"name": "Books",
"amount": 200
},
{
"name": "Newspapers",
"amount": 320
},
{
"name": "Magazines",
"amount": 225
},
{
"name": "Shoes",
"amount": 400
}
]
У меня есть переменная в моем контроллере Angular, в которой хранится результат функции get из службы.
$scope.chartData = statsData.get(someId);
Я объявил свою диаграмму кендо в HTML следующим образом:
<div kendo-chart
k-series="[{ field: 'amount', categoryField: 'name'}]"
k-data-source="chartData">
</div>
Итак, результат, который я должен получить, будет выглядеть так:
Проблема в том, что когда я запускаю приложение, ничего не происходит. Более того, если я изменю значение переменной $scope.chartsData на статически определенный массив таких объектов:
$scope.chartData = [ { "name": "Books", "amount": 200 },..];
все работает правильно и график отображается правильно. Итак, мое предположение, что проблема связана с тем, что в момент загрузки самого графика данные еще не возвращаются из сервиса. Как я могу это исправить?