Angularjs api用id调用

时间:2016-02-21 14:32:46

标签: angularjs api

所以我进入Angular并且我已经成功完成了api调用,该调用返回带有名称和url的对象。要获取对象的详细信息,我需要执行另一个api调用,其中包含对象的id。我不知道该怎么做。

这是我的服务,用于调用对象的详细信息。 ':id'是对象的id必须在api链接中的位置

app.factory('pokemonDetails', ['$http', function($http) {
return $http.get('http://pokeapi.co/api/v2/pokemon/:id')
    .success(function(data) {
        return data;
    })
    .error(function(err) {
        return err;
    });
}]);

我不确定我是否清楚地解释了这一点。

当我转到我的网址'/ pokemon / 1'时,api必须拨打'http://pokeapi.co/api/v2/pokemon/1'。

如果我转到我的网址'/ pokemon / 2',则api必须拨打“http://pokeapi.co/api/v2/pokemon/2”等等。

(我不确定是否需要分享我的代码的其他部分,如果我告诉我,我会添加它们。)

2 个答案:

答案 0 :(得分:1)

如果你想使用它,这是angular's $resource service的一个很好的用例。

var Pokemon = $resource('http://pokeapi.co/api/v2/pokemon/:id', {id:'@id'});
var thisPokemon = Pokemon.get({id:1}, function() {
  /* whatever you want to do after you get the details back */
});

$resource是一种简写,允许您对API资源进行标准(和自定义)CRUD操作调用。

答案 1 :(得分:0)

定义具有参数的函数。

O(n*log(n)

然后在您的客户端代码中使用它。

O(n^2)

关键是将参数传递给函数。

  

弃用通知

     

已弃用app.factory('pokemonDetails', ['$http', function($http) { function httpPromise(id) { return $http.get('http://pokeapi.co/api/v2/pokemon/'+id); } //return function return httpPromise }]); 遗留承诺方法$scope.details=[]; for (var id=0; id < someNumber; id++) { pokemanDetails(id).then( function onFulfilled(response) { $scope.details[id] = response.data; }).catch ( function onRejected (response) { console.log ( response.status ); }); }; $http。请改用标准.success方法。 1