2014-12-05 2 views
0

는 여기에 내가 더 많은 논리가이각도 논리

APIService.getcode($scope.searchQuery) 
    .success(function(data){ 
    search.result = data; 
    $location.path("/result"); 
    $scope.search = search; 
}); 

같은 것을 내 컨트롤러가되고 여기에 내 현재 공장

.factory('Service',function($http,LOOKUP_ENDPOINT){ 
     'use strict'; 
     var API = {}; 

     API.getcode = function(code){ 
      var args = { 
       'code': code, 
       'callback': 'JSON_CALLBACK' 
      }, 
      params = ('?callback=' + args.callback); 
      return $http.jsonp(LOOKUP_ENDPOINT + params); 
     }; 
    return API; 
}) 

내가 내 웹 서비스에서 반환 데이터를 가져올 때 지금 추가하고 싶습니다.

하면 반환 데이터 다음은 컨트롤러 또는 공장이 모든이에 수직 데이터가 다음 프런트 엔드 등

에 오류 메시지를 반환하지 반환에 일정한 범위, 화면 결과에 & 리디렉션 개체를로드 및 결과가?

+0

컨트롤러의 모든 루트 관련 항목을 제어해야합니다. 그러나 서비스에서 부울을 사용할 수 있으며 부울 변수를 서비스에서 반환하고 부울 변수를 확인하여 컨트롤러의 페이지를 리디렉션 할 수 있습니다. –

+0

.success .error 로직이 컨트롤러 또는 팩토리에 있어야합니다. – StevieB

+0

컨트롤러에서 성공과 오류를 이상적으로 처리해야합니다. 대부분 모범적 인 좋은 관행이 말하는 것. –

답변

0

글쎄, 우리가 우려의 분리에 의해 갈 때, 당신은 이상적으로 컨트롤러에 "특정"물건과 서비스에 "공통"물건을 배치해야합니다.

문제를 고려할 때 서비스의 API 호출을 중앙 집중화하려고하지만 컨트롤러 내부의 로직을 사용한다고 가정합니다.

.factory('Service',function($http,LOOKUP_ENDPOINT){ 
     'use strict'; 
     var API = {}; 

     API.getcode = function(code, successCallbackFunction, failureCallbackFunction){ 
      var args = { 
       'code': code, 
       'callback': 'JSON_CALLBACK' 
      }, 

      var promise = $http.jsonp(LOOKUP_ENDPOINT + params), 
      promise.success(function(data, status, header, config) { 

      successCallbackFunction(data); 

      }), 

      promise.error(function(data, status, header, config) { 
       failureCallbackFunction(data, status, header, config); 
      }); 
     }; 
    return API; 
}) 

와 컨트롤러 :

당신은 이런 식으로 할 수있는 내 마음 좋은 연습 인터셉터 from here을 사용하려면

APIService.getcode($scope.searchQuery, function(data) { 
     //function to execute on success 
    }, function(data, status, header, config) { 
     //function to execute on failure 
    }); 
+0

아, 컨트롤러에서 두 가지 기능을 가진 구문을 본적이 없습니다. 첫 번째 기능이 성공 함수이고 오류가 두 번째 기능이라는 것을 어떻게 알 수 있습니까? 나는 그것을 많이 좋아한다 – StevieB

+0

아, 그게 네게있다 @ 스비 비. 이 순서는 중요하지 않습니다. 너 자신을 결정할 필요가있어. SOP의 종류. 그런 다음 서비스에서 함수를 호출합니다. God Grace Javascript, 함수를 객체로 취급 할 수 있습니다. –

0

controller에는 logical part을 입력해야합니다. 기본적으로 factory/service은 컨트롤러의 경우 common functionality에 유용합니다. 다른 컨트롤러에서 같은 의미의 factory/service을 사용할 수 있습니다.

0

을하고 other_stuff로드 /에 오류 처리/스피너를 정의 그곳에. 상속을 통해보다 유연한 코드를 만들기 위해 $ http 서비스를 직접 포장 할 수도 있지만, 프로젝트의 규모에 따라 다릅니다.