我知道之前已经问过这个问题但是我试图弄清楚如何链接包含ajax调用的函数。我所拥有的是:
$scope.firstFunc();
$scope.secondFunc();
secondFunc检查从firstFunc设置的范围值。我该如何链接?
答案 0 :(得分:0)
例如,如果您具有以下功能:
$scope.firstFunc = function() {
return $http
.get('/api/objects')
.then(function(data) {
$scope.data = data;
});
};
$scope.secondFunc = function() {
return $http
.get('/api/otherObjects')
.then(function(data) {
// do something with new 'data' and with $scope.data
});
};
你可以按照这样的顺序打电话给他们:
$scope.firstFunc().then($scope.secondFunc);
假设我理解正确。
$scope.firstFunc()
返回了已返回的承诺$http.get
(在完成第一个.then
链后)
然后,我们为同一个Promise链接了另一个.then
,并告诉它执行$scope.secondFunc
。
你也可以直接使用以下的第一个ajax调用的响应数据(如果它符合你的需要):
$scope.firstFunc = function() {
return $http
.get('/api/objects');
};
$scope.secondFunc = function(previousData) {
return $http
.get('/api/otherObjects')
.then(function(data) {
// do something with 'previousData' from the previous call from $scope.firstFunc
});
};
并使用$scope.firstFunc().then($scope.secondFunc)
调用所有内容,以便$scope.secondFunc
直接收到$scope.firstFunc()
的数据,而不是通过$scope
,如果这首先是您想要的,否则,我认为这个答案的第一部分。
希望这有帮助!