链接角度函数

时间:2016-06-17 19:13:58

标签: javascript angularjs

我知道之前已经问过这个问题但是我试图弄清楚如何链接包含ajax调用的函数。我所拥有的是:

$scope.firstFunc();
$scope.secondFunc();

secondFunc检查从firstFunc设置的范围值。我该如何链接?

1 个答案:

答案 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,如果这首先是您想要的,否则,我认为这个答案的第一部分。

希望这有帮助!