我被困在为什么我无法使用Angular网格(ng-grid)显示从我的OData Feed返回的数据。
OData Feed正在使用WebAPI和EntityFramework,并且一直向客户端返回数据。
我已经尝试确保我在WebApiConfig.cs中使用CamelCasePropertyNamesContractResolver
var jsonFormatter = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
我还尝试在Angular控制器上成功将客户端上的返回结果解析为数组。
$scope.serverData = JSON.parse(data);
有什么想法吗?
App.js
var app = angular.module("WorksheetApp", ['ngResource', 'ngGrid']);
app.controller('WorksheetController', function ($scope, $http) {
$scope.gridOptions = {
data: 'serverData'
};
function fetchData() {
$http({ url: '/odata/CommitteeWorksheets', type: 'Get' })
.success(function (data) { $scope.serverData = data; });
}
fetchData();
});
注意:如果我将硬编码数组传递给网格的数据参数,则所有此代码都有效,因此页面也会设置为显示网格。
谢谢! 编
答案 0 :(得分:1)
OData返回包含查询结果的对象以及元数据。 ng-grid只是在寻找要在网格中显示的对象,因此您需要在回调中使用此代码:
$scope.serverData = data.value;