У меня есть приложение Angular, которое извлекает мои данные с сервера и хочет использовать результаты для заполнения сетки kendo. Я попытался создать kendo.data.DataSource, но не могу получить сетку для заполнения. Ниже я пытаюсь.
$scope.surchargeGridOptions = {
dataSource: {
pageSize: 15,
autoSync: true,
autoBind: false,
data: $scope.model.dataSource,
}
$scope.getWaivers = function () {
waiverService.getCustomers($scope.model.customer.CustomerID).then(function (result) {
$scope.model.waivers = result.data;
$scope.model.dataSource = new kendo.data.DataSource({
data: $scope.model.waivers,
});
$scope.model.dataSource.read();
});
};
Возможно ли это сделать и как мне это сделать?
Страница Front Html с параметром Grid
<div kendo-grid="ListGrid" options="ListOptions" k-rebind="ListOptions" class="k-grid-content-border"></div>
function GridColumn() {
return [{
field: 'name',
template: "<a ng-click='ToList(this.dataItem)' class='cursor-pointer'>{{this.dataItem.name}}</a>",
title: "",
footerTemplate: "Total",
width: 200,
locked: true,
}]}
$scope.ToGeo = function (item) {
$scope.dataLoded = false;
GetResults(function (res) {
$scope.ListOptions.dataSource = new kendo.data.DataSource({
data: res,
});
$scope.ListOptions.columns = GridColumn();
$scope.ListGrid.refresh();
$scope.dataLoded = true;
})
}
где GetResults для вызова API и получения данных
Объект источника данных в ваших параметрах имеет свойство данных, которое требует только ссылки на простой массив, а не на весь источник данных кендо.
Вы должны использовать k-data-source
для ссылки на ваши данные...
<kendo-grid k-data-source="myData"></kendo-grid>
... и вам не нужен источник данных кендо, чтобы заставить его работать...
$scope.myData = [
{ name: 'a', number: 1 },
{ name: 'b', number: 1 },
{ name: 'c', number: 1 },
{ name: 'd', number: 1 }
];
.. Если у вас есть динамические данные, то лучше всего будет наблюдать наблюдаемый массив кендо.
Вот пример кода.