首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Angular中迭代$http.get?

如何在Angular中迭代$http.get?
EN

Stack Overflow用户
提问于 2015-10-21 01:06:48
回答 2查看 1K关注 0票数 0

所以我使用API (精灵宝可梦api)来获取精灵宝可梦信息。

我已经成功地调用了信息,但我不确定如何获得一项的倍数。

例如,

代码语言:javascript
复制
$http.get("http://pokeapi.co/" + data.abilities[0].resource_uri)
            .success(function(data){
              console.log(data.name)
              $scope.ability = data;
            })

在这里,我不得不使用指定能力数组中的哪个对象(使用),但我希望能够获得所有可用的能力。

我应该使用for in循环吗?如果是这样,我是否可以在.success中这样做,并让它输出它在我的html文件中找到的内容?例如,有

代码语言:javascript
复制
<p>{{ability.name}}</p>

输出%2或%3名称,而不是% 1。

EN

回答 2

Stack Overflow用户

发布于 2015-10-21 01:40:45

这将检索api中每个pokemon的每个属性名称,并在ng-repeat中显示它。

jsFiddle:

http://jsfiddle.net/chrislewispac/z5aytdLs/

代码语言:javascript
复制
<div ng-app>
<div ng-controller="PromiseCtrl">
    <p></p>
    <p ng-repeat="name in pokeAttrNames">{{name}}</p>
</div>
</div>

function PromiseCtrl($scope, $http) {
$scope.pokeAttrNames =[];   

$http.get('http://pokeapi.co/api/v1/pokedex/1/')
     .then(function(result){
           result.data.pokemon.forEach(function(poke){
              $http.get('http://pokeapi.co/' + poke.resource_uri)
                   .then(function(value) {
                       $scope.pokeAttrNames.push(value.data.name);
                    });
            });
       });   
}
票数 0
EN

Stack Overflow用户

发布于 2015-10-21 02:06:31

您可以通过添加$resource并在控制器中从工厂调用您的方法来使您的代码更简洁一些,我添加的所有内容都是一个for循环来处理每个请求。

代码语言:javascript
复制
  MyApp.controller('PromiseCtrl', function ($scope, $http, yourResource) { 

             for(var i in data.abilities) {
                 yourResource.save({abilities_uri: data.abilities[i].resource_uri}, function (response) {
                     console.log(data.abilities[i].resource_uri)
                    $scope.ability = data;
                 };
    }).factory('yourResource', ['$resource', function ($resource) {
              return $resource('http://pokeapi.co/:abilities_uri', {} {
                    'get': {
                      method: 'GET',
                      headers: {"Content-Type": "application/json"}
                    }
                  });
              }]);
    }

PD:这可能需要调整一下,例如您的$scope.ability可能应该是一个数组

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33242658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档