2016-08-06 9 views
0

ここに私のコードとng-repeatがリストを生成していますが、何も表示していません。 ng-repeatは何も表示していません

<!DOCTYPE html> 
<html lang="en"> 
<head> 


</head> 
    <body ng-app="myApp"> 

    <div ng-controller="getHospitalCtrl"> 

     <h3>my list</h3> 
      <ul> 
       <li ng-repeat="hospital in hospitals track by $index"> 
        <p class="name">{{hospital.name}}</p> 
        <p class="location">{{hospital.address.city}}</p> 
       </li>    
      </ul> 
     </div> 

    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
    <script> 
     var app = angular.module('myApp',[]); 
     app.controller('getHospitalCtrl',function($scope, $http){ 

     console.log('i m in getHospitalCtrl'); 

     $http.get("url") 
     .then(function(response){ 
      $scope.hospitals = JSON.stringify(response.data.data); 
      console.log($scope.hospitals); 
      //this console is printing the right json here 
    }); 

}); 
     </script> 

    </body> 
</html> 

コンソールでJSONはこの

[{ "_id" のようなものです: "57a5877bb23cda352156315a"、 "はuserId":257、 "名": "フォルティス"、 "電子メール":「フォルティス@病院"住所":{"postalCode": "110088"、 "状態": "DL"、 "都市": "ニューデリー"、 "streetAddress": " S-フォルティス "}、" 座標 ":{" 座標 ":[77.1545846,28.7164134]、" タイプ ":" ポイント "}}]

+0

あなたのJSON配列はにconsole.log(response.data)と同じですか? –

答えて

1

あなたのコードを見てみましょう。

まずあなたが

を持っています
$scope.hospitals = response.data; 

$ scope.hospitalsをhttp応答で返されるものに初期化します。

しかし、あなたはあなたが文字列で、この値を上書きしている

$scope.hospitals = JSON.stringify($scope.hospitals.data); 

を持っていた直後。文字列にng-repeatを使用することは意味がありません。 配列を反復するためにng-repeatが使用されます。

あなただけの1つの初期化が必要です。

$scope.hospitals = response.data.data; 
関連する問題