AngularJS [$ инжектор: itkn] Неверный токен инъекции!Ожидаемое имя сервиса в виде строки, получил функцию - PullRequest
0 голосов
/ 25 октября 2018

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

Если бы мне пришлось угадывать, почему это происходит, я бы сказал, что это потому, что у контроллера есть еще один параметр, чем функция реквизиции, но я не знаю достаточно о структуре Angular, чтобы знать наверняка.Из всех постов, которые я прочитал об этом сообщении об ошибке, оно обычно исходит из добавленного «,» в параметрах, но я не думаю, что на этот раз так.

Javascript:

var controllerId = 'requisition';
angular.module('app').controller(controllerId, ['routemediator', 'common', 'datacontext', '$scope', 'bootstrap.dialog', '$routeParams', '$location', '$window', '$uibModalStack', 'Upload', requisition, function ($scope, Upload) {
    // upload later on form submit or something similar
    $scope.submit = function () {
        if ($scope.form.file.$valid && $scope.file) {
            $scope.upload($scope.file);
        }
    };

    // upload on file select or drop
    $scope.upload = function (file) {
        Upload.upload({
            url: 'upload/url',
            data: { file: file, 'username': $scope.username }
        }).then(function (resp) {
            console.log('Success ' + resp.config.data.file.name + 'uploaded. Response: ' + resp.data);
        }, function (resp) {
            console.log('Error status: ' + resp.status);
        }, function (evt) {
            var progressPercentage = parseInt(100.0 * evt.loaded / evt.total);
            console.log('progress: ' + progressPercentage + '% ' + evt.config.data.file.name);
        });
    };
}]);

Где произошла ошибка:

function requisition(routemediator, common, datacontext, $scope, bsDialog, $routeParams, $location, $window, $uibModalStack, Upload) {
*lots of code....*
}

1 Ответ

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

Удалить function ($scope, Upload) из инициализации контроллера.

var controllerId = 'requisition';
    angular.module('app').controller(controllerId, ['routemediator', 'common', 'datacontext', '$scope', 'bootstrap.dialog', '$routeParams', '$location', '$window', '$uibModalStack', 'Upload', requisition]);

Добавьте код function ($scope, Upload) в function requisition, как показано ниже

function requisition(routemediator, common, datacontext, $scope, bsDialog, $routeParams, $location, $window, $uibModalStack, Upload) {
 // upload later on form submit or something similar
        $scope.submit = function () {
            if ($scope.form.file.$valid && $scope.file) {
                $scope.upload($scope.file);
            }
        };

        // upload on file select or drop
        $scope.upload = function (file) {
            Upload.upload({
                url: 'upload/url',
                data: { file: file, 'username': $scope.username }
            }).then(function (resp) {
                console.log('Success ' + resp.config.data.file.name + 'uploaded. Response: ' + resp.data);
            }, function (resp) {
                console.log('Error status: ' + resp.status);
            }, function (evt) {
                var progressPercentage = parseInt(100.0 * evt.loaded / evt.total);
                console.log('progress: ' + progressPercentage + '% ' + evt.config.data.file.name);
            });
        };
*lots of code....*
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...