2017-10-10 5 views
2

서버에 이미지를 업로드하는 서비스를 하나 작성했으며 컨트롤러에서이 서비스를 사용하고 있지만 서비스에 정의 된 정의되지 않은 기능을 나타내는 서비스를 호출합니다. 오류가 난이 서비스각도로 정의되지 않은 서비스 표시

app.controller('settingsCtrl', ['$scope','apiCall','$filter', function($scope,apiCall,$filter,fileUpload){ 
    $scope.saveStudioBranch = function(){ 
     studio(); 
     admin(); 
     branch(); 
    } 

    function studio(){ 
     var studio_json = {"session_id":session_id,"u":[{"col":"studio","val":$scope.studioDetails.studio},{"col":"type","val":$scope.studioDetails.type}],"filter":[["id","=","1"]],"table":"studio"}; 
     apiCall.callEndpoint(studio_json,"settingRoute.php","update",json_header).then(function(response){ 
      if(response.data.error == 0){ 
       if($scope.inst_logo != undefined){ 
        var uploadUrl = "https://papa.fit/routes/registrationRoute.php?action=instLogo"; 
        -->> fileUpload.uploadFileToUrl($scope.inst_logo,session.client_id,uploadUrl); 
       } 
      } 
      else 
       show_snack(response.data.message); 
     }); 

    } 
}); 
를 호출하고

app.service('fileUpload', ['$http', function ($http) { 
    this.uploadFileToUrl = function(file,clientid, uploadUrl){ 
     var fd = new FormData(); 
     fd.append('file', file); 
     fd.append('id', clientid); 
     $http.post(uploadUrl, fd, { 
      transformRequest: angular.identity, 
      headers: {'Content-Type': undefined} 
     }) 
     .success(function(response){ 
      console.log(response) 
     }) 
     .error(function(){ 
     }); 
    } 
}]); 

여기 내 코드이 "정의의 속성을 읽을 수 없습니다 'uploadFileToUrl'"같은 여기

이입니다

서비스를 요청할 때 화살표를 추가했습니다.

+0

코드를 어디에 보여 주시겠습니까? – Satpal

+0

오우 죄송합니다. 위의 코드를 편집하고 다시 점검하십시오. –

답변

4

정의되지 않은 것

app.controller('settingsCtrl', ['$scope','apiCall','$filter', 'fileUpload', 
    function($scope, apiCall, $filter, fileUpload){ 
+0

오 마이 악. 카림 –

+0

정말 고마워요. :) – Karim

0

당신은 당신의 서비스를 반환해야합니다, 그렇지 않으면 오류가 당신이 매개 변수의 목록 내부 fileUpload 서비스를 추가하는 것을 잊었다

app.controller('settingsCtrl', ['$scope','apiCall','$filter', 
    function($scope, apiCall, $filter, fileUpload){ 

주입에

function uploadFileToUrlSrv($http) { 

    var service = {}; 
    service.uploadFileToUrl = function(file,clientid, uploadUrl){ 
     var fd = new FormData(); 
     fd.append('file', file); 
     fd.append('id', clientid); 
     $http.post(uploadUrl, fd, { 
      transformRequest: angular.identity, 
      headers: {'Content-Type': undefined} 
     }) 
     .success(function(response){ 
      console.log(response) 
     }) 
     .error(function(){ 
     }); 
    } 
    return service; 
} 
+0

나는 당신을 얻지 못했습니다. 당신은 간단히 explian 수 있습니까? –

+0

@samericerdighe 서비스는 일련의 기능입니다. 컨트롤러에서 객체를 사용하려면 서비스를 객체로 반환해야합니다. – Zooly

+0

코드 샘플을 사용하여 서비스의 모양을 편집했지만, ** 반드시 ** 서비스를 반환해야 함을 명심하십시오. 그것을 만드십시오 :) –