0

AngularJsで作成されたWebアプリケーションでは、ユーザーがファイルをアップロードできるページがあります。しかし、私はいくつか問題があります。 これは、アップロードを作る工場です:私は、ファイルをアップロードしようとした場合

angular.module('app').factory('FileUpload', ['$http', function($http) { 
    this.uploadFileToUrl = function(file, uploadUrl){ 
    var fd = new FormData(); 
    fd.append('file', file); 
    $http.post(uploadUrl, fd, { 
     transformRequest: angular.identity, 
     headers: {'Content-Type': undefined} 
    }) 
     .success(function(){ 
     }) 
     .error(function(){ 
     }); 
    } 
}]); 

、コンソールが私にこのエラーを与える:

"Error: [$injector:undef] Provider 'FileUpload' must return a value from $get factory method. 

これは、コントローラ内の関数である:

$scope.uploadFile = function(){ 
    var userId = $stateParams.userId; 
    var fileType = $stateParams.fileType; 
    var file = $scope.myFile; 
    console.log('file is '); 
    console.dir(file); 
    var uploadUrl = 'my_url'; 
    FileUpload.uploadFileToUrl(file, uploadUrl); 
}; 

答えて

0

使用しているパターンはserviceでなく、factoryである必要があります。ファクトリーでnewのインスタンスを返す場合は、単にサービスを提供するだけです。

angular.module('app').service('FileUpload',... 
関連する問題