2014-03-25 4 views
0

사용중인 웹 서비스는 내보기에 넣기 전에 수정해야하는 형식으로 데이터를 반환합니다.각도로 팩토리 응답 수정

.factory('myServices', function ($http){ 
    var myServices = {  
     getInfo: function(){ 
      var promise = $http(
       { 
        url: "/deal-details.json", 
        method: "GET"      
       }) 
       .then(function(response) { 
        return response.data; 
       } 
      ); 
      // some logic to modify promise???   
      return promise; 
     } 
    }; 
    return myServices; 
}); 

내가 가진 문제는 내가 약속을 반환하기 전에 된 getInfo() 안에 약속 수정을 수행해야한다 : 여기

내 기본 공장? 이전 개발자가 컨트롤러에서 myServices.getInfo()에서 반환 된 값을 수정하고 있었지만 나에게 맞는 것 같지 않습니다.

+0

예를 들어보기에 특정하지 않은 수정을 렌더링하는 경우. 그럼 그 장소는 서비스 [유사] (http://stackoverflow.com/a/22617972/2592994) – calebboyd

답변

0

transformResponse$ http를 제공하는 정보에 어떻습니까? 뭔가 같은 것

$http({ 
    method : 'GET', 
    url : "/deal-details.json", 
    transformResponse : function (response) { 
     // your modification here 
     return response.data; 
    } 
    }); 
+0

이 효과가 있습니다. 감사! –

0

실제로는 수정해야 할 항목에 달려 있습니다. 매번 수정해야하는 항목에 따라 다릅니다. 데이터를 수정해야하는 시간이 100 %이면 서비스 내에서 데이터를 수정해야 할 수도 있습니다.

그러나 어떤 기능이 호출되는지에 따라 다른 수정을해야 할 경우 컨트롤러 내에서 수행해야합니다.

모든 $http 요청을 차단해야하는 경우 @ przno의 대답이 좋습니다. 모든 약속을 수정하거나 어떤 방식으로 유효성을 검사해야하는 경우 훌륭한 해결책입니다! 그러나 귀하의 질문이 특정 서비스와 관련이있는 것처럼 보입니다.

+1

내 모든 사람들의 말을 들려주었습니다 ... 데이터가 사용될 때마다 true로 유지해야하는 일반적인 데이터 수정이 서비스에서 수행해야하는 경우 컨트롤러에서 계속 진행됩니다. –

관련 문제