2017-01-18 3 views
0

私は、ejb、angularJs、restfull webservicesおよびJPAに基づいた1つのプロジェクトに取り組んでいます。jsonデータはagular jsのngグリッドに表示されませんか?

私はWebサービスを作成しており、データベースからjson形式のデータをクライアントに返します。

クライアント側では、このjsonデータをng-gridで表示したいのですが、データは表示されませんでした。

以下は私のコードです。コンソールで

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

plunkrを追加できますか? –

+0

この$ scope.mydata = data.dataを確認してください。 console.log($ scope.mydata); –

+0

@Manikandan data.dataは定義されていません –

答えて

1

試してデータがサービスから$scope.dataにスコープすなわちで実際に利用可能である前に、NG-グリッドが初期化され、場合この多分多分オブジェクト

0

内部オブジェクト

$scope.mydata = data.data; 
へ。その場合は、サービスが正常に終了した後で初期化を作成する必要があります。これらを試してください 2つのオプション第1位: $http成功ブロック内に '$ scope.gridOptions'初期化を書くことができます。 例のコードは次のようになります

$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, 
     ....., 
     ..... 
    }; 

}; 

OR 第二:あなたはサービスがexceuting前に、ここにいくつかの時間(200msの)待ちます$timeout

$timeout(function(){ 
    $scope.gridOptions = { 
     data: $scope.mydata, 
     ....., 
     ..... 
    }; 

}, 200); 

$timeout内の初期設定を書き込むことができますコードでは、それまでにサービスがデータを返すことが期待できます(必要に応じてさらに時間を増やすことができます)。

+0

私はこれを試しましたがまだ表示されません –

+0

あなたのコードでplunkrを作ってください。 ここでこのplukrを使用してコードを更新してください: http://plnkr.co/edit/aprCGm8uvY1kzDOr8Avu?p=preview ** updated ** – amarmishra

関連する問題