Я знаю, что подобные вопросы об этой ошибке неоднократно задавались в SO, и я прочитал ответы, но, насколько я могу видеть, мой код разработан правильно. Но, конечно, это не так, потому что я получаю эту ошибку. У моего приложения несколько сервисов и несколько контроллеров, и по какой-то причине они работают отдельно от одного конкретного сервиса/контроллера. Я смог свести код к минимуму, как показано ниже. Ошибка возникает, когда TestController срабатывает с точки зрения с .. ng-controller="TestController" ..
и сообщение об ошибке в консоли Chrome является:
Error: [$injector:unpr] http://errors.angularjs.org/1.2.15/ $injector/unpr?p0=%24scopeProvider%20%3C-%20%24scope%20%3C-%20Loyper at Error (native)..
я боролся с этим в течение некоторого времени, и не может видеть, что эту услугу (Loyper) и контроллер (TestController) определяется иначе, чем те, которые работают, с точки зрения инъекций. Любая помощь будет оценена.
var app = angular.module('testapp', [
"ngRoute",
"mobile-angular-ui"
]);
app.config(['$routeProvider', '$httpProvider', function($routeProvider, $httpProvider) {
$routeProvider.
when('/', {
templateUrl: 'main.html',
controller: 'TestController'
}).
when('/loyper', {
templateUrl: 'loyper.html',
controller: 'LoypeController'
}).
otherwise({
redirectTo: '/'
});
$httpProvider.defaults.useXDomain = true;
}]);
app.service('Loyper', ['$scope', '$http', function($scope, $http) {
var cached = false;
var loyper = {};
var message;
return {
foo: 'bar'
}
}]);
app.controller('TestController', ['$scope', 'Loyper', function($scope, Loyper) {
angular.extend($scope, {
getLoyper: function() {
return Loyper.foo;
}
});
$scope.loypelist = $scope.getLoyper();
}]);
Спасибо @ jb-nizet! Но $ rootScope может иметь смысл вводить в службу, или? Я уверен, что видел это. Btw, $ http используется моим сервисом, я просто удалил код. –
Да, $ rootScope можно вводить в службу. –