繁体   English   中英

嵌套的角度http.get调用

[英]nested angular http.get calls

我有一个简单的有角$ http.get,它返回一个json对象,但是我希望json中的id可以执行另一个$ http.get。 我可以通过在第一个$ http.get中嵌套另一个来实现此目的,但这似乎很愚蠢。 将响应的ID data.id分配给变量的最佳方法是什么? 我在可变范围方面遇到了一些问题; 尝试简单地将值分配给变量。

$http.get('/api/v1/foo/userinfo?thunk='+thunk+'&bar='+bar).success(function(data) {
    $scope.id = data.id
}).then(function(data){
    $scope.id = data.data.id
});

您为什么不看您的变量,在这种情况下,像这样的$ scope.id:

$scope.$watch('id', function() {
       // Http request goes here
       $http.get(...)
});

当您为$ scope.id分配任何值时,将触发“监视功能”。

可以使用回调使它更整洁。 将您的呼叫包装在一个函数中:

function startAJAX(thunk, bar, callback) {
    $http.get('/api/v1/foo/userinfo?thunk='+thunk+'&bar='+bar).success(function(data) {
        callback(data.id);
    });
}

然后拨打电话并进行下一个http通话:

startAJAX(thunk, bar, function(id) {
    $http(id).....

    });
});

不需要使用watch()方法。 使用回调,或者如果您想花哨的话,请使用诺言使事情井井有条。

var callOnePromise = $http.get('/api/foo');
var callTwoPromise;
callOnePromise.success(function(data) {
    callTwoPromise = $http.get('/api/bar/' + data.id);
});
callTwoPromise.success(function() {
    //Cool stuff here.
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM