2014-10-09 4 views
0

서비스에 $ http 요청을했습니다. 그러나 양식에 대한 사용자 입력에 따라 데이터를 검색해야합니다. url 속성은 baseUrl을 정의하고 params 속성은 flexibel URL을 정의합니다.

angular.module('mean.system').service('flightReq',function($http,$location){ 
    var baseUrl='/system/views/airfareData.json'; 
    var method='GET'; 
    var Request={}; 
    this.flightReq=function(){ 
     $http({ 
      method:method, 
      url:baseUrl, 
      headers:{'Content-Type': 'application/x-www-form-urlencoded'}, 
      params: {'dep':'a', 'arr':'b','number':'c', 'date1':'d'}, 
      cache:true 
     }) 
     .success(function(data,status){ 
      console.log(data); 
      console.log(status); 
      $location.path('/resultpresentation/example'); 
      Request=data; 
     }) 
     .error(function(data){ 
      console.log(data||"Request failed"); 
      $location.path('/'); 
     }); 

     }; 
    this.getRequest=function(){ 
     return Request 
    }; 
}); 

시피 PARAMS는 'A', 'B', 'C', 'D'로 고정 정의된다. 하지만 사용자의 입력에 따라 유연하게 사용하고 싶습니다. 어떻게하면 좋을까요?

$ http 요청이 서비스가 아닌 컨트롤러 일 경우 나는 $ scope.dep 등을 할 수 있습니다. 그러나이 경우 어떻게해야하는지 모르겠습니다. 어떤 제안? 건배

+0

다만 매개 변수를 포함하는 객체를 $ http 호출에 전달하십시오. –

+0

당신은 컨트롤러 (내가 사용자의 입력을 저장하는 곳)에서 얻은 객체를 전달해야한다는 것을 의미합니까? 내가 어떻게 그럴 수 있니? – Dribel

+0

그냥 서비스에 인수로'$ scope.yourModelWithUserInput'을 전달한 다음 인수를 매개 변수로 사용하십시오 – maurycy

답변

0

당신의 컨트롤러에 서비스를 주입 : 컨트롤러에서 다음

.controller('someNameCtrl', ['$scope', 'flightReq', function($scope, flightReq) { 

} 

, 당신은 서비스 인수로 범위를 전달할 수 있습니다

.controller('someNameCtrl', ['$scope', 'flightReq', function($scope, flightReq) { 
... 
    flightReq.flightReq($scope.formData.dep,$scope.formData.arr,$scope.formaData.number,$scope.formData.date1); 
... 
} 

그 인수 및 사용을 취할 것입니다 귀하의 서비스 그 (것)들을 매개 변수로 사용하십시오 :

angular.module('mean.system').service('flightReq',function($http,$location){ 
    var baseUrl='/system/views/airfareData.json'; 
    var method='GET'; 
    var Request={}; 
    this.flightReq=function(dep,arr,number,date1){ 
    $http({ 
     method:method, 
     url:baseUrl, 
     headers:{'Content-Type': 'application/x-www-form-urlencoded'}, 
     params: {'dep': dep, 'arr': arr,'number': number, 'date1': date1}, 
     cache:true 
    }) 
+0

이 완벽하게 작동합니다! 고마워요 !!! – Dribel

관련 문제