2017-07-29 6 views
2
$http 
    .get('/getFollowings/' + currentUser) 
    .success(function(response) { 
     $scope.friendlist = response; 
    }); 

私はこれらの値を個別に処理することはできませんが、私はresponse.butでデータを取得したいと思います。 'レスポンス' は含まれていますサーバ(nodejs expressjs)から角度コントローラにデータを取得するには、どのようにデータを取得するのですか?

[{"_id":"597c9fabc1ada32277f1da34","following":[{"username":"him"},{"username":"ron"},{"username":"nadu"}]}] 

私はこのusernamesを取得したいです。私はこれを試してみてください、lodashライブラリを使用することをお勧めします

+0

「個別に」という単語を詳しく説明できますか? – thelonglqd

+0

@Vivz私は試みた。しかし、できなかった。 –

+0

@thelonglqd個別に、私はちょうど{"him"、 "ron"、 "nadu"}を取得したいという意味です。 –

答えて

0

あなたがここに$scope.usernamesangular.forEach

$scope.usernames = []; 
$http.get('/getFollowings/' + currentUser) 
    .success(function(response) { 
     $scope.friendlist = response; 
     angular.forEach($scope.friendlist[0].following, function(val) { 
      $scope.usernames.push(val.username) 
     }); 
    }); 

を使用することができますがあなたが使用することができ、ユーザ名

のすべての値を持つ配列でありますng-repeatを使用して、これらの値をビューに表示します。

var myApp = angular.module('myApp', []); 
 
myApp.controller('ctrl', ['$scope', function($scope) { 
 
    var response = [{ 
 
     "_id": "597c9fabc1ada32277f1da34", 
 
     "following": [{ 
 
      "username": "him" 
 
     }, { 
 
      "username": "ron" 
 
     }, { 
 
      "username": "nadu" 
 
     }] 
 
    }]; 
 
    $scope.usernames = []; 
 
    angular.forEach(response[0].following, function(val) { 
 
     $scope.usernames.push(val.username) 
 
    }); 
 
}]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="myApp" ng-controller="ctrl"> 
 
<div ng-repeat="username in usernames"><span>{{username}}</span></div> 
 
</div>

+0

「エラー:応答が定義されていません」 私はこれを得ました:( –

+0

あなたのAPIコール。あなたの回答が質問に記載されているのと同じ構造であることを確かめていますか? – Vivz

5

$scope.friendlist = _.chain(response.plain()) 
        .map(function(item){ 
         item.following = _.pluck(item.following,'username') 
         return item; 
        }) 
        .pluck('following') 
        .flatten() 
        .value(); 
+0

ここにあります: "エラー:_は定義されていません" –

+0

はい、あなたのプロジェクトにロダッシュをインストールしていない場合、通常です。試してみる前に、インストールしてください。 https://stackoverflow.com/questions/23862119/how-to-make-lodash-work-with-angular-js –

0

あなたは$ HTTPを使用している場合は、クライアントにオブジェクトを提供する必要があります。

構造:あなたのコントローラで

{ 
    "data": [ 
    { 
     "_id": "597c9fabc1ada32277f1da34", 
     "following": [ 
     { 
      "username": "him" 
     }, 
     { 
      "username": "ron" 
     }, 
     { 
      "username": "nadu" 
     } 
     ] 
    } 
    ] 
} 

$scope.friendlist = response.data; 
//i think it's simple 
for(var i=0;i<$scope.friendlist.length;i++){ 
    console.log($scope.friendlist[i]); 
} 
+0

次に、 '$ scope.friendlist'の各値を取得する方法は? –

+0

@IranthiPrarthana "for" .forEach "です。 – hurricane

0

だけ配列からすべてのユーザ名を取得するには、foreachループを使用します。

$scope.usernameList = []; 
    $http 
    .get('/getFollowings/' + currentUser) 
    .success(function(response) { 
     $scope.friendlist = response;   
     $scope.friendlist[0].following.forEach(function(item){ 
     $scope.usernameList.push(item.username); 
     }); 
    }); 

したがって、$scope.usernameListには、次の名前の配列に含まれるすべてのユーザー名が含まれています。

関連する問題