Я использую функцию, которая используется в более чем 1 контроллере, поэтому я решил создать сервис и использовать его во всем мире.
Вот почему я включил файл commonService.js в свой index.html
'use strict';
var myApp = angular.module('myAppName');
myApp.service(['loadHttpService', '$window', '$http', function (loadHttpService, $window, $http) {
this.loadHttpService = function (url) {
...
};
return $http.jsonp(url, {
params: {
callback: "JSON_CALLBACK"
}
})
.then(function (response) {
...
});
};
}]);
и использовал его в моем homeController, включая службу как зависимость, как показано ниже:
'use strict';
angular.module('Home')
.controller('HomeController', ['$scope', '$rootScope', '$http', '$window', '$state', 'loadHttpService',
function ($scope, $rootScope, $http, $window, $state, loadHttpService) {
...
var url = "http://xxx";
loadHttpService.loadHttp(url);
}]);
Но это приводит меня к такой ошибке https://docs.angularjs.org/error/ $ injector/unpr? P0 = loadHttpServiceProvider %20% 3C- %20loadHttpService %20% 3C- %20HomeController
Почему это происходит и как это исправить?
Обратите внимание: myAppName - это имя моего приложения (используется в ng-приложении).
Я очень новичок в angularjs и не стесняюсь добавлять какие-либо подсказки, чтобы сделать это лучше.
Существует много способов скинуть кошку или накладывать зависимости
module1 - общий
angular.module('commonServices', [])
.service('myService', function () { //look ma, a service})
module2
angular.module('superApp', ['commonServices'])
.controller('notMyCtrl', function (myService) { //look ma, a service from other module})
Module3
angular.module('homeApp', ['commonServices'])
.controller('homeCtrl', function (myService) { //look ma, a service from other module})
или таким же образом вы можете ввести home
модуль в родительский модуль (я не могу представить преимущества загрузки двух приложений на одной странице)
angular.module('myAppName')
и angular.module('Home')
Я думаю, вы не хотите увеличивать оба модуля с помощью ngApp
или вручную. Вы вводите один модуль в другой?