Я работаю над угловым проектом, где я добавляю новые функции в более старый проект.
Я пытаюсь зарегистрировать службу с моим контроллером, но получаю сообщение об ошибке, когда мой контроллер не может найти функции в сервисе.Не удается получить доступ к контроллеру angularjs
Вот как определяется мой контроллер (я знаю, что это не стандартный способ, но я должен следить за этим, потому что все приложение делает.)
angular.module("test").controller("listCtrl", listCtrl);
listCtrl.$inject = ["$scope", "$state", "$timeout", "listService", "$rootScope"];
function listCtrl($scope, $state, $timeout, listService, $rootScope) {
this.$scope= $scope;
$scope.service=listService;
//some other definitions
$scope.items = $scope.service.getPage(%function_ARGUMENTS%);
}
Вот как определяется служба:
angular.module("test").service("listService", listService);
listService.$inject = ['$state', '$rootScope'];
function listService($state, $rootScope) {
function getPage(%function_ARGUMENTS%) {
//getPage function definition goes here
}
}
Теперь, по какой-то причине, я получаю ошибку:
Cannot read property 'getPage' of undefined
Я не могу понять, что migh Это может быть причиной этого.
Является ли проблема с тем, как определяется $scope
? Если да, то каков был бы правильный способ сделать это, предполагая, что this.$scope=$scope
изменить нельзя.
EDIT: Устранено множественное опечатки в вопросе. У меня нет этой опечатки в моей программе, это была ошибка, которую я сделал при наборе на SO.
У вас есть опечатка в '$ scope.services.getPage (% function_ARGUMENTS%); 'он должен быть' $ scope.service.getPage (% function_ARGUMENTS%); ' –
Я исправил опечатку в вопросе, опечатка не является тем, что вызывает ошибку в моей основной программе. – ChaoticTwist
Я тоже написал ответ, так или иначе, вы поняли, что проблема важна. –