AngularJS - Сервис не регистрируется, когда не в app.js - PullRequest
0 голосов
/ 25 февраля 2019

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

app js

(function () {

    var app = angular.module("ScmCodeViewer", ["ngRoute"]);

    app.config(function ($routeProvider) {
        $routeProvider
            .when("/gitlab", {
                templateUrl: "gitlab.html",
                controller: "gitlabController"
            });
    });

}());

Service js

(function () {

    var app = angular.module("ScmCodeViewer");

    app.factory("gitlabService", function ($http) {
        ....
        }
        return {
            getFiles: getFiles
        }
    });

});

, когда я пытаюсь использовать gitlabService в моем контроллере, как показано ниже, я получаю "«неизвестный провайдер» ошибка

(function () {

    var app = angular.module("ScmCodeViewer");
    app.controller("gitlabController", function ($scope, $log, gitlabService) {


            gitlabService.someMethod();
        }
    });

}());

, однако, если я перемещаю код в сервисе js в приложение js и регистрирую сервис там, похоже, он работает нормально.

html

<head>
    <script src="scripts/external/angular.min.js"></script>
    <script src="scripts/external/angular-route.min.js"></script>

    <script src="scripts/app.js"></script>
    <script src="scripts/gitLabService.js"></script>
    <script src="scripts/gitlabController.js"></script>
</head>

1 Ответ

0 голосов
/ 25 февраля 2019

Вы забыли выполнить свой сервис js.Вам нужно (); в конце, чтобы убедиться, что функция работает.

(function () {

    var app = angular.module("ScmCodeViewer");

    app.factory("gitlabService", function ($http) {
        ....
        }
        return {
            getFiles: getFiles
        }
    });

})(); //right here you need the ()
...