无法在ng-repeat中呈现JSON结果

时间:2017-05-19 23:07:22

标签: angularjs json angularjs-ng-repeat

我正在尝试遍历从搜索Spotify REST API返回的嵌套JSON对象,但无法呈现结果。

在我的控制器中:

function fetch() {
  $http.get("https://api.spotify.com/v1/search?q=" + $scope.search + "&type=artist&limit=50")
    .then(function(response) {
      console.log(response.data.artists.items);
      $scope.details = response.data.artists.items;
    });
}

返回一个如下所示的对象:enter image description here

我正试图通过这个循环:

<div ng-if="details.response==='True'">
  <ul ng-repeat="song in details">
    <li>Songs:{{song.name}}</li>
  </ul>
</div>

并显示external_urls值,images网址以及name值。但是,这些都不会被呈现(即使是Songs这个词也不应该显示,无论我是否有正确的值。)

2 个答案:

答案 0 :(得分:1)

将您的if条件更改为

<div ng-if="details">
    <ul ng-repeat="song in details">
        <li>Songs:{{song.name}}</li>
    </ul>
</div>

因为“详情”不包含“回复”。所以你只需检查它是否存在或是否为空

答案 1 :(得分:1)

更改ng-if子句

让它评估为当响应有数据时变为真的实际boolean

类似的东西:

.then(function(response) {
      console.log(response.data.artists.items);
      $scope.isTheDataLoaded = true;
      $scope.details = response.data.artists.items;

在你的HTML中:

<div ng-show="isTheDataLoaded">