以下代码有效,我得到了返回的 JSON。我感兴趣的是 cars_url
。我怎样才能得到URL (最好的方法是什么)然后发出辅助获取请求?
JSON
{
created: "2013-11-08T18:57:44",
domain: "www.test.com",
cars_url: "/api/v1/carlot/4",
image: null,
modified: "2013-11-08T18:57:44"
}
JavaScript
app.factory('CbgenRestangular', function(Restangular) {
return Restangular.withConfig(function(RestangularConfigurer) {
RestangularConfigurer.setBaseUrl('http://127.0.0.1:8000');
});
});
app.controller("CampaignData" ,
[
'$scope',
'Restangular',
'CbgenRestangular',
function($scope, Restangular, CbgenRestangular){
CbgenRestangular.one('api/v1/person', "james").get().then(
function(person) {
$scope.person = person;
console.log(person)
}
);
}
]);
最佳答案
app.controller("CampaignData" , ['$scope', 'Restangular', 'CbgenRestangular', '$http',
function($scope, Restangular, CbgenRestangular, $http){
CbgenRestangular.one('api/v1/person', "james").get().then(function(person) {
$scope.person = person;
console.log(person);
var cars = $http({method: 'GET', url:person.cars_url);
cars.then(function(data){
// do success things here
}, function(data){
/do error things here
});
}
);
}]);
如果嵌套深度超过一层,嵌套请求可能会变得困惑。在这种情况下,您应该使用 $q 来控制请求流。
app.controller("CampaignData" , ['$scope', 'Restangular', 'CbgenRestangular', '$http', '$q',
function($scope, Restangular, CbgenRestangular, $http, $q){
$scope.person = {cars_url:"your 404 url here"};
var personcall = CbgenRestangular.one('api/v1/person', "james").get();
$q.when(personcall.then(
function(person) {
$scope.person = person;
console.log(person);
}
))
.then(function(){
var cars = $http({method: 'GET', url:$scope.person.cars_url);
cars.then(function(data){
// do success things here
}, function(data){
/do error things here
});
});
}]);
关于javascript - 在 AngularJS 中发出第二个 get 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20154973/