我无法将 Kendo 网格绑定到 Angular 服务调用。我有一个角度$http
服务,它的getData()
方法如下所示:
'use-strict';
payrollApp.factory('dataService', function ($http, $q) {
return {
getData: function () {
var deferred = $q.defer();
$http({
method: 'GET',
url: '/api/apihome/',
}).success(function (data, status, headers, config) {
deferred.resolve(data);
}).error(function (data, status, headers, config) {
deferred.reject(status);
});
return deferred.promise;
},
};
});
然后我在我的控制器中设置网格DataSource
如下:
'use-strict';
payrollApp.controller('KendoDataGridController', function KendoDataGridController($scope, dataService) {
var companiesList = dataService.getCompanies();
companiesList.then(function(companies) {
console.log(JSON.stringify(companies, undefined, 2));
$scope.companies = new kendo.data.DataSource({
data: companies,
pageSize: 10
});
}, function(status) {
window.alert(status);
console.log(status);
});
}
);
但我的网格没有填充。当我手动设置 DataSource 的数据(硬编码 JSON 数组)时,它工作正常,但当我在服务调用中获取数据时,我的服务返回的 JSON 数组也是一个有效的 JSON 数组(与我硬编码的那个)。有人有想法吗?我觉得这是一个承诺问题,但即便如此,当承诺解决时,我仍在设置我的$scope's
companies
财产。
谢谢。