角度(ng-grid)绑定到Web Api结果

时间:2014-05-27 12:07:52

标签: angularjs entity-framework asp.net-web-api odata ng-grid

我被困在为什么我无法使用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();
});

注意:如果我将硬编码数组传递给网格的数据参数,则所有此代码都有效,因此页面也会设置为显示网格。

谢谢! 编

1 个答案:

答案 0 :(得分:1)

OData返回包含查询结果的对象以及元数据。 ng-grid只是在寻找要在网格中显示的对象,因此您需要在回调中使用此代码:

$scope.serverData = data.value;