2016-09-06 118 views
0

我觉得我缺少明显的东西在这里,但我不能JSON数据呈现到页面中,唯一能出把JSON格式的数据,而不仅仅是特定键(例如,名字:Abbey Malt)。从JSON数据显示在AngularJS

这是我的控制器:

app.controller('beerController', function($scope, $http, $modal) { 
$http.get("http://api.brewerydb.com/v2/fermentables", { 
    params: { 
     key: 'xxx' 
    } 
    }) 
    .then(function(response) { 
    $scope.response = response.data.name; 
    console.log(response); 
    }); 
}; 

和HTML:

<div ng-controller="beerController"> 
    <div class="container"> 
     <h3>Latest Releases ({{currentPage}} pages)</h3> 
     <div class="row"> 
     <div ng-repeat="items in response"> 
      <li>{{data.name}}</li> 
     </div> 
     </div> 
    </div> 
</div> 

最后,这里是控制台的屏幕截图和JSON对象是如何构成的: enter image description here

回答

1

尝试更改您的代码

app.controller('beerController', function($scope, $http, $modal) { 
    $http.get("http://api.brewerydb.com/v2/fermentables", { 
     params: { 
      key: 'xxx' 
     } 
     }) 
     .then(function(response) { 
     $scope.response = response.data.data; 
     console.log(response); 
     }); 
    }; 

,并查看

<div> 
    <div ng-controller="beerController"> 
    <div class="container"> 
     <h3>Latest Releases ({{currentPage}} pages)</h3> 
     <div class="row"> 
     <div ng-repeat="item in response"> 
      <li>{{item.name}}</li> 
     </div> 
     </div> 
    </div> 
</div> 
+0

我太亲近了!谢谢! – user3438917

5

放上控制器:

$scope.items = response.data.data; 

和HTML会是这样

<div ng-repeat="item in items"> 
    <li>{{item.name}}</li> 
</div> 
+0

@ user3438917是明确告诉你为什么这是正确的答案?它看起来像API返回一个数组的对象'数据'。 Angular本身会将JSON反序列化为'resonse.data'。所以它变成了'response.data.data'。然后你迭代你在控制器中公开的项目。您将每个项目都称为“项目”。然后你可以使用'item.name'来访问'name'。 – Martin