У меня есть приложение angularJS с тремя модулями: myApp (родительский / основной модуль), сервисы (содержит все фабрики и сервисы) и контроллеры (содержит все контроллеры).
Это мое приложение. js файл
angular.module('services', []);
angular.module('controllers', []);
var app = angular.module('myApp', ['services', 'controllers']);
Я прочитал здесь , что настройка моих модулей и определение зависимостей таким образом позволят каждому из моих модулей получать доступ к другому без необходимости вставлять зависимости.
Вот мой файл index.html
<script src="/js/app.js"></script>
<script src="/js/services/testFactory.js"></script>
<script src="/js/controllers/testCtrl.js"></script>
файл testFactory.js
angular.module('services').factory('testFactory', ['$rootScope', 'apiCall', function($rootScope, apiCall){
let testFactory = {};
testFactory.testFunc = function(){
console.log('testFactory.testFunc called');
}
return testFactory;
}])
файл testCtrl.js
angular.module('controllers').controller('testCtrl', ['$scope', 'testFactory', function($scope, testFactory){
console.log("inside testCtrl");
$scope.testing = function(){
console.log("testing function called");
testFactory.testFunc();
}
}])
Когда я вызываю testFactory.testFunc внутри модуля myApp , он работает правильно. Но когда я пытаюсь вызвать его в модуле controller , я получаю следующую ошибку
TypeError: Невозможно прочитать свойство 'testFunc' из неопределенного
Я даже пытался внедрить модуль service в модуль controller в качестве зависимости, но я все еще получал ту же ошибку.
Как получить сервисный модуль для работы внутри контроллера модуля?