我正在开发一个基于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]
请说明我的代码有什么问题。
答案 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),因此我们可以期望服务在此之后返回数据。(如果需要,可以进一步增加时间。)