0
내 각도 앱에는 컨트롤러가 있습니다. 컨트롤러에는 Service
이라는 서비스에서 비동기 함수를 호출하는 메서드가 있습니다. 이 컨트롤러 코드 :서비스에서 컨트롤러로의 각도 통과 지연 오류
$scope.controllerMethod = function(){
Service.serviceMethod($scope.x, $scope.y).then(function(data){
//request succeeded, so do nothing
}, function(data){
//there was an error, show error message
});
}
그리고 이것은 Service
서비스 내에서 serviceMethod
입니다 : 필요한 경우
serviceMethod: function(x, y){
return $http.post('save', {
id: x, type: b
}).then(function(data){
//update variables in the service
}, function(data){
//send error message to controller
});
}
Service
방법은 서버 호출 서버가 오류를 반환합니다. 컨트롤러에 오류 응답을 보내려면 어떻게해야합니까? 현재 설정에서 $http
요청이 성공 또는 오류를 반환하는지 여부와 관계없이 컨트롤러의 지연은 항상 성공 방법을 실행합니다. 나는 서버에서 데이터를 전달하는 컨트롤러에서 연기 된 에러 메소드를 호출하려고한다.
근무하다 위대한 감사합니다! 왜인지는 모르겠지만. '.then()'은'success'와'failure' 콜백을 작성하는 또 다른 방법 일뿐입니다. 내가 왜 다른 행동을 보는지 어떤 생각? "$ http 함수 호출의 리턴 값은 약속이기 때문에 then 메소드를 사용하여 콜백을 등록 할 수 있으며이 콜백은 응답을 나타내는 단일 인수를 수신합니다. " – flyingL123
실제로는 알 수 없지만, 위에서 설명한대로 서비스 메서드에 함수를 반환하면 컨트롤러에 '성공'및 '오류'메서드가 노출됩니다. 확실하지 않습니다 ... – hakazvaka
무슨 뜻인지 잘 모르겠습니다. 두 경우 모두 내가 말할 수있는 한, 우리는 서비스 방법에서 연기를 반환하고 있습니다. 둘 다'$ http (...)'를 반환합니다. – flyingL123