AngularJS: angular.js: 13920 TypeError: Невозможно прочитать свойство 'then' из неопределенного - PullRequest
0 голосов
/ 25 сентября 2018

Я звоню в бэкэнд-сервис, используя angularJS для загрузки файла из нескольких частей. Я обнаружил ошибку.ответ приходит в мою службу, но оттуда я не могу получить ответ на свой угловой контроллер из-за вышеуказанной ошибки обещания.

fileUploadService:

(function() {
'use strict';
angular
    .module('module')
    .factory('FileUpload', FileUpload);

FileUpload.$inject = ['$http'];

function FileUpload($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(response){
        })
        .error(function(error){
        });
    }
        return this;
}
})();

controller.js:

        $scope.onFilesSelected = function(files) {

       var uploadUrl = "/api//customer/logo";

       FileUpload.uploadFileToUrl(files[0], uploadUrl).then(
           function(result){
               var logo =  FileUpload.getResponse();
               vm.setLogo(logo);
              // $scope.errors = FileUpload.getResponse();
           }, function(error) {
                alert('error');
           });
    };

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Вы не вернули никаких значений.Так что возвращайте ответ внутри коллбэка успешно и с ошибкой, как показано ниже

.success(function(response){
return response;
    })
.error(function(error){
return error
    });
0 голосов
/ 25 сентября 2018

Ваша uploadFileToUrl() функция не имеет оператора возврата, поэтому она возвращает undefined.Я полагаю, вы хотели вернуть обещание, возвращенное $http:

this.uploadFileToUrl = function(file, uploadUrl) {
    var fd = new FormData();    
    fd.append('file', file);
    // Notice the return statement below
    return $http.post(uploadUrl, fd, {
        transformRequest: angular.identity,
        headers: {'Content-Type': undefined}
    })
    .success(function(response){
    })
    .error(function(error){
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...