json数据不会以角度js显示在ng网格中?

时间:2017-01-18 08:41:31

标签: angularjs json angular ejb

我正在开发一个基于EJB,AngularJS,restful web services和JPA的项目。

我创建了一个Web服务,它将以JSON格式将数据从数据库返回给客户端。

在客户端,我想在ng-grid中显示此JSON数据,但数据未显示。

以下是我的代码:

JS代码

dashboard.controller('MainController', function($scope, $http) {
    $http.get('http://localhost:8080/WebApplication2/rest/testentity').
    success(function(data) {
        $scope.mydata = data;
        console.log("data response : " + $scope.mydata);
    });
    $scope.gridOptions = {
        data: $scope.mydata,
        enableRowSelection: false,
        enableCellEditOnFocus: true,
        multiSelect: false,
        columnDefs: [{
                field: 'id',
                displayName: 'id',
                enableCellEdit: false
            },
            {
                field: 'testname',
                displayName: 'testname',
                enableCellEdit: false
            },
            {
                field: '',
                displayName: 'Save',
                enableCellEdit: false,
                cellTemplate: '<button id="editBtn" type="button"  ng-click="saveItem(row.entity.testname)" >Save</button>'
            }
        ]
    };
});

在控制台中,它将显示正确的数据

控制台输出

 data response : [object Object],[object Object]

请说明我的代码有什么问题。

2 个答案:

答案 0 :(得分:1)

尝试

$scope.mydata = data.data;

对象可能在对象

答案 1 :(得分:0)

这可能是这样的情况:在数据在范围内实际可用之前,即在服务的$scope.data中,ng-grid被初始化。如果可能是这种情况,您必须在服务成功返回后编写初始化。试试这些 2选项第一名:您可以撰写&#39; $ scope.gridOptions&#39; $http成功块内的初始化。 示例代码可以是:

$http.get('http://localhost:8080/WebApplication2/rest/testentity').
success(function(data) {
    $scope.mydata = data;
    console.log("data response : " + $scope.mydata);
    initializeGridOptions();
});
var initializeGridOptions = function(){
     $scope.gridOptions = {
       data: $scope.mydata,
       .....,
       .....
     };

};

第二名:您可以在$timeout

中写入初始化
$timeout(function(){
    $scope.gridOptions = {
       data: $scope.mydata,
       .....,
       .....
     };

}, 200);
在执行代码之前,

$timeout服务将等待一段时间(200ms),因此我们可以期望服务在此之后返回数据。(如果需要,可以进一步增加时间。)