Я уже несколько часов царапаю голову над этим, и после хорошего поиска я не нашел полезного решения.Угловой маршрут не разрешает услугу
Как состояние заголовка, мои зависимости не разрешаются провайдером маршрутов Углового. Это ошибка:
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';
});
};
}]);
Насколько я могу сказать, что все должно быть в порядке разрешения; я что-то упускаю или что-то недопонимаю?
Я думаю, проблема в псевдониме. Вы используете testService как псевдоним для вашего разрешения. Инжектор может быть запутан. Попробуйте переименовать его, например: 'разрешение: { testData: function (testService) { console.log (testService.message); } } 'и переименовать его в контроллер. – Errorpro
@Errorpro Он возвращает по существу ту же ошибку: 'Неизвестный поставщик: testServiceProvider <- testService <- testData'. – P810
@ Errorpro на самом деле, я считаю, что, должно быть, была отдельная причина для ошибки, когда я опубликовал этот последний комментарий, потому что теперь он работает. Спасибо! – P810