我使用Web API创建了MVC 4.0 app,它以JSON格式返回数据(我使用NewtonSoft.Json将对象序列化为json)并尝试在ng-Grid中绑定数据。我收到以下格式的数据:
"[{\"Name\":\"FIRST_NAME\",\"Value\":\"FIRST_NAME\"},{\"Name\":\"CURRENT_DATE_TIME\",\"Value\":\"CURRENT_DATE_TIME\"},{\"Name\":\"CLIENTID\",\"Value\":\"CLIENTID\"},{\"Name\":\"CALLMODE\",\"Value\":\"CALLMODE\"}, {\"Name\":\"new 321\",\"Value\":null}]"
当我尝试将数据分配给ng-Grid时,每个字符都填充在不同的行上。以下是我写的javascript:
var guidesRespApp = angular.module('guidesRespApp', ['ngGrid']);
//Get Data from restful API.
guidesRespApp.controller('MyCtrl', function ($scope, $http) {
$http.get('/api/datadictionary').success(function (thisdata) {
$scope.myData = thisdata;
});
$scope.filterOptions = {
filterText: '',
useExternalFilter: true,
};
//Setting grid options
$scope.gridOptions = {
data: 'myData',
multiSelect: true,
filterOptions: { filterText: '', useExternalFilter: false },
enableRowReordering: false,
showGroupPanel: false,
maintainColumnRatios: false,
groups: [],
showSelectionCheckbox: true,
showFooter: true,
enableColumnResize: true,
enableColumnReordering: true
};
// $scope.totalFilteredItemsLength = function() {
// //return self.filteredRows.length;
// };
});
如果手动分配如下,数据将以网格形式显示:
$scope.myData = [{"Name":"FIRST_NAME","Value":"FIRST_NAME"},{"Name":"CURRENT_DATE_TIME","Value":"CURRENT_DATE_TIME"},{"Name":"CLIENTID","Value":"CLIENTID"},{"Name":"CALLMODE","Value":"CALLMODE"}];
任何人都可以帮我理解如何修复它吗? 此外,当我键入filtertext中的值时,我想显示已过滤项目的数量。
答案 0 :(得分:11)
如http://angular-ui.github.io/ng-grid/所述,网格中显示的数据类型为数组,该数组中的每个元素都映射到正在显示的行。所以我修改了我的代码,如下所示,它对我有用:
$http.get('http://localhost:12143/api/datadictionary').success(function (thisdata) {
//Convert data to array.
var myData = $.parseJSON(JSON.parse(thisdata));
$scope.myData = myData;
});
甚至var myData = $.parseJSON(angular.fromJson(thisdata));
也在工作。我们首先需要解析数据(为此我使用了JSON.parse()
),然后转换为数组(为此我使用了$.parseJSON()
)。
答案 1 :(得分:4)
尝试将get回调更改为以下之一:
$http.get('/api/datadictionary').success(function (thisdata) {
$scope.myData = JSON.parse(thisdata);
// or
$scope.myData = angular.fromJson(thisdata);
});
关于webapi如何返回json,请参考此内容。 ASP.NET WebAPI: How to control string content returned to client?