Угловой маршрут не разрешает обслуживание

0

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

В качестве состояния заголовка мои зависимости не разрешаются провайдером угловых маршрутов. Это ошибка:

Unknown provider: testServiceProvider <- testService <- testService

Мой скомпилированный Javascript файл (app.js) выглядит так:

'use-strict';

var app = angular.module('test-app', ['ngRoute']);

app.config(['$routeProvider', function ($routeProvider) {
    $routeProvider
        .when('/', {
            templateUrl: 'views/home.html',
            controller: 'HomeController',
            resolve: {
                testService: function (testService) {
                    console.log(testService.message);
                }
            }
        })
}]);

app.factory('apiService', ['$http', function ($http) {
    function url(endpoint) {
        return '/api/v1' + endpoint;
    }

    return {
        user: {
            authenticated: function () {
                return $http({method: 'GET', url: url('/user/authenticated')});
            },

            login: function (token) {
                return $http({method: 'GET', url: url('/user/login'), cache: false, headers: {
                    Authorization: 'Basic ' + token
                }});
            },

            logout: function () {
                return $http({method: 'GET', url: url('/user/logout')});
            },

            model: function () {
                return $http({method: 'GET', url: url('/user/data')});
            }
        }
    };
}]);

app.factory('testService', function () {
    return {
        message: 'Hello world'
    };
});

app.controller('HomeController', ['$scope', '$http', function ($scope, $http, apiService, testService) {
    $scope.user = {
        authenticated: false,
        error: '',
        username: '',
        password: ''
    };

    $scope.login_button = 'Log in';

    $scope.isAuthenticated = function () {
        return $scope.user.authenticated;
    }

    $scope.needsAuthentication = function () {
        if (!$scope.user.authenticated) {
            return true;
        }

        return false;
    }

    $scope.logIn = function ($event) {
        $event.preventDefault();

        $scope.login_button = 'Please wait...';

        var token = btoa($scope.user.username + ':' + $scope.user.password);

        apiService.user.login(token).then(function (success) {
            $scope.user = success.data.user;

            $scope.user.authenticated = true;
        }, function (error) {
            $scope.user.error = 'Please try logging in again.';

            $scope.login_button = 'Log in';
        });
    };
}]);

Насколько я могу судить, все должно решаться хорошо; я что-то упускаю или что-то недопонимаю?

  • 0
    Я думаю проблема в псевдониме. Вы используете testService как псевдоним для вашего разрешения. $ инжектор может быть перепутан. Попробуйте переименовать его, например resolve: { testData: function (testService) { console.log(testService.message); } } и переименуйте его в контроллере.
  • 0
    @Errorpro Возвращает практически ту же ошибку: Unknown provider: testServiceProvider <- testService <- testData .
Показать ещё 4 комментария
Теги:

2 ответа

0
Лучший ответ

Я думаю, проблема в псевдониме. Вы используете testService как псевдоним для вашего разрешения. Инжектор может быть запутан. Попробуйте переименовать его, например:

resolve: { testData: function (testService) { console.log(testService.message); } } 

и переименуйте его в контроллер.

0

Вы должны ввести услугу,

изменение

Из:

app.controller('HomeController', ['$scope', '$http', function ($scope, $http, apiService, testService)

Для того, чтобы:

app.controller('HomeController', ['$scope', '$http','apiService','testService' ,function ($scope, $http, apiService, testService) 
  • 0
    Спасибо, что напомнили; Я действительно делал это заранее, но забыл добавить его обратно (я удалил его во время отладки). Однако, добавив его обратно, вы получите ту же ошибку.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню