2016-10-15 2 views
1

コントローラからURL $resourceを呼び出してリストを取得していますが、これはログに表示されます。HTTP GETの値のリストをAngularJSに格納していますか?

<tr ng-repeat="clubIncharges in vm.clubIncharges track by clubIncharges.id"> 

私も試してみました:

function ClubDetailController($scope, $rootScope, $stateParams, $resource, 
    DataUtils, entity, Club) { 

    var vm = this; 
    vm.club = entity; 
    vm.byteSize = DataUtils.byteSize; 
    vm.openFile = DataUtils.openFile; 

    var Todo = $resource('api/club-inchargesByClubId/:clubId'); 
    var clubIncharges = []; 

    vm.clubIncharges = Todo.get({clubId: $stateParams.id}).$promise;  
    clubIncharges = angular.fromJson(vm.clubIncharges); 
    alert(clubIncharges); 

})(); 

コントローラーの問題は、このリストには、例えば、このHTML、後で使用するためにVARまたはオブジェクトに格納することができません:

var clubIncharges = []; 
clubIncharges = angular.fromJson(vm.clubIncharges); 

期待される出力が得られませんでした。

DBからのリストが記録され

var clubIncharges = []; 
    $http.get('api/club-    
    inchargesByClubId/'+$stateParams.id).then(function(response){ 
     alert(response.data); 
     vm.clubIncharge = response.data; 
     clubIncharges = angular.fromJson(vm.clubIncharge); 
     vm.clubIncharges = clubIncharges; 
     alert(clubIncharges); 
     console.dir(clubIncharges); 
    }).catch(function(error){ 
     console.error("Something went wrong!: " + error); 
    }); 

更新コード:

2016-10-15 13:41:22.985 DEBUG 3392 --- [nio-8081-exec-6] c.c.campuzz.aop.logging .LoggingAspect : Exit: com.campuz360.campuzz.web.rest.ClubInchargesResource.g 
etClubInchargesByClubId() with result = [ClubIncharges{id=1, designaion='Chairma n', addedBy='null', clubId='2'}, ClubIncharges{id=2, designaion='bkujasrv', adde dBy='gawerg', clubId='2'}] 

最新の編集私は$httpでそれを行うだろう

$http.get('api/club-inchargesByClubId/' + $stateParams.id).then(function   (response) { 
     $scope.club = response.data; 
    }).catch(function (error) { 
     console.error("Something went wrong!: " + error); 
    }); 
+0

する必要がありますが、そのリストをCONSOLE.LOGあなたの投稿を編集し、出力を表示していただけますか? –

+0

最後にこれを見ました) ")()"なぜ自分のコントローラーに電話しているのですか? –

+0

また、$ scopeを注入している場合は、var vm = $ scopeを試してください。 var vm = thisの代わりに。 –

答えて

0

、それは私にクリーナーです

function ClubDetailController($scope, $rootScope, $stateParams, $http, 
DataUtils, entity, Club) { 

    var vm = this; 
    vm.club = entity; 
    vm.byteSize = DataUtils.byteSize; 
    vm.openFile = DataUtils.openFile; 

    $http.get('api/club-inchargesByClubId/'+$stateParams.id).then(function(response){ 
     vm.clubIncharges = response.data; 
     console.dir(vm.clubIncharges); 
     clubIncharges = angular.fromJson(vm.clubIncharges); 
     console.dir(clubIncharges); 
    }).catch(function(error){ 
     console.error("Something went wrong!: " + error); 
    }); 


})(); 

EDIT

OPのAPIからJSONレスポンスが不正な形式があります。私は正しいJSON形式をチェックするために、このツールを使用することをお勧めします。https://jsonformatter.curiousconcept.com/

+0

ええ、今度はしかし、警告メッセージでは[オブジェクト] [オブジェクト]しか見ることができません。 –

+0

'console.log'を' console.dir'に変更してください。 – distante

+0

いいえ、変数vm.clubInchargesにリストして、以下のようにhtmlで使用できるようにします。** ** –

0
Todo.get({clubId: $stateParams.id}).$promise; 

は、あなたがデータを返すないと約束されています。あなたは

vm.clubIncharges = Todo.get({clubId: $stateParams.id}); 

線の上https://docs.angularjs.org/api/ngResource/service/ $リソースを参照することができ

は動作するはずですが、あなたのアラートは動作しませんので、それはすぐにデータを返しません。次のようなgetメソッドを呼び出して、データが利用可能になったときに通知することができます。

vm.clubIncharges = Todo.get({clubId: $stateParams.id}, function() { 
    console.log(vm.clubIncharges); 
}); 

とhtml

<tr ng-repeat="clubIncharge in clubIncharges track by clubIncharge.id"> 
+0

Akshay、助けてくれてありがとうございます。私は警告するだけではいけません。私の必要はhtmlで使用する変数に保存することです –

+0

vm .clubIncharges = Todo.get({clubId:$ stateParams.id});これは変数vm.clubInchargesにそれを格納します。その変数を正しく使用していることを確認する必要があります –

関連する問題