Angular JS:在ng-Grid中没有显示JSON数据

C K*_*C K 8 asp.net-web-api angularjs ng-grid

我使用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}]"
Run Code Online (Sandbox Code Playgroud)

当我试图将数据分配给ng-Grid时,每个char都填充在不同的行上.以下是我写的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;
//        };

});
Run Code Online (Sandbox Code Playgroud)

如果手动分配如下,数据将显示在网格中:

$scope.myData = [{"Name":"FIRST_NAME","Value":"FIRST_NAME"},{"Name":"CURRENT_DATE_TIME","Value":"CURRENT_DATE_TIME"},{"Name":"CLIENTID","Value":"CLIENTID"},{"Name":"CALLMODE","Value":"CALLMODE"}];
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我理解如何解决它?此外,当我键入filtertext中的值时,我想显示已过滤项目的数量.

C K*_*C K 10

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; 
});
Run Code Online (Sandbox Code Playgroud)

甚至var myData = $.parseJSON(angular.fromJson(thisdata));还在工作.我们首先需要解析数据(为此我使用JSON.parse()),然后转换为数组(对于我使用的这个$.parseJSON()).