在Angular JS中绑定服务响应

时间:2015-11-12 17:56:55

标签: javascript angularjs

如果发生错误,我试图将http响应作为JSON主体发送到错误处理程序。我不太确定如何做到这一点,因为我在这方面有点缺乏经验。这是我目前的相关代码:

控制器:

for (var prop in $scope.applicants) {
            var applicant = $scope.applicants[prop];
            $scope.sendApplicantsToSR(applicant).then(null, $scope.sendATSError.bind(null, applicant));
       }

$scope.sendATSError = function (applicant, error) {
        return AtsintegrationsService.applicantErrorHandling(applicant.dataset.atsApplicantID);
    };

    $scope.sendApplicantsToSR = function(applicant) {
        return AtsintegrationsService.sendApplicantsToSR(applicant);
    };

服务

srvc.sendApplicantsToSR = function (applicant) {
    var applicantURL = {snip};

    return $http({
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded'
        },
        method: 'POST',
        url: applicantURL,
        data: applicant
    });
  };

  srvc.applicantErrorHandling = function (applicantID, error) {
    var url = srvc.url + {snip};

    return $http({
        method: 'POST',
        url: url,
        data: { "error_message": error }
    });
  };

因此,理想情况下,我希望仅在发生错误时将$scope.sendApplicantsToSR的结果传递给$scope.sendATSError

1 个答案:

答案 0 :(得分:3)

在您的控制器内

YourService.getdatafromservice().then(function(SDetails) {
  //response from service
  console.log(SDetails);
});

在您的服务中

return {
  getData: getData
};

function getData() {
  var req = $http.post('get_school_data.php', {
    id: 'id_value',

  });

  return req.then(handleSuccess, handleError);

  function handleSuccess(response) {
    response_data = response.data;
    return response_data;
  }

  function handleError(response) {
    console.log("Request Err: ");
  }

}