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
約束が解決されたときにプロパティを設定しています。
ありがとう。