取决于一个ajax调用响应调用angularjs中的另一个ajax调用

时间:2015-04-16 12:49:59

标签: javascript ajax angularjs angularjs-http

首先我调用了userSignupSubmit函数。在这个方法中调用另一个方法mobilenocheckingmethod,依赖于这个ajax调用响应来调用另一个ajax调用但是第二次调用它将无法正常工作。

    var crm = angular.module('crm');
    crm.controller("userCheckingController", function($scope,service, $http) {


    var key="";

    $scope.mobilenoCheckingSubmit = function() {


        var dataObject="serialNo="+$scope.mobileno;

        alert(dataObject);
        $http({
             method:'POST',
             url:'registerDevice',
             data:dataObject,
             headers:{'Content-Type':'application/x-www-form-urlencoded'}
             }).
            success(function(data, status, headers, config) {

                var code=data.code;

                if(code!=200)
                {
                    alert("mobileno200"+data.message);
                    key=data.clientKey;

                    this.userSignup();
                }
                else
                {
                    alert("mobileno201"+data.message);
                    alert("mobileno201"+data.clientKey);
                    key=data.clientKey;
                  this.userSignup();

                }   



            }).
        error(function(data, status, headers, config) {

            $scope.user_error_status="Inside Error Occur";
            return;

            }).

        //this.userSignup();
    }

   $scope.userSignupSubmit = function() {



        this.mobilenoCheckingSubmit();

    }
   $scope.userSignup=function(){


        var dataObject="email="+$scope.signupEmail+"&key="+key;

        alert(dataObject);
        $http({
             method:'POST',
             url:'signUp',
             data:dataObject,
             headers:{'Content-Type':'application/x-www-form-urlencoded'}
             }).
            success(function(data, status, headers, config) {

                var code=data.code;

                if(code === 201)
                {
                    alert(data.message);

                }
                if(code === 200)
                {
                    alert(data.message);

                }
                if(code === 409)
                {


                    service.Key(data.Key);
                    $scope.manual_dashboard = true;
                    $scope.userChecking = true;

                }   



            }).
       error(function(data, status, headers, config) {

        $scope.signup_error_status="Inside Error Occur";

            });

       }
    });

1 个答案:

答案 0 :(得分:1)

您的代码应使用$scope.userSignup();代替this.userSignup();,这将在ajax调用成功时调用您的范围方法。

<强>代码

success(function(data, status, headers, config) {
    var code = data.code;

    if (code != 200) {
        alert("mobileno200" + data.message);
        key = data.clientKey;

        $scope.userSignup(); //<-- change here
    } else {
        alert("mobileno201" + data.message);
        alert("mobileno201" + data.clientKey);
        key = data.clientKey;
        $scope.userSignup(); //<-- change here

    }
})