Насколько я знаю, все AngularJS сервисы являются одиночными. Однако в моей реализации это, похоже, не соответствует действительности. Я использую AngularJS v1.4.14
. Я создал два контроллера, где один сервис внедряется в обоих.
FooController
angular.module('fooModule').controller('FooController', [
'myService',
function (myService) {
...
}
]);
BarController
angular.module('barModule').controller('BarController', [
'myService',
function (myService) {
...
}
]);
MyService
'use strict';
angular.module('myModule').service('myService', MyService);
function MyService() {
var initialize = function () {
console.log("INITIALIZE");
};
initialize();
}
Я получаю INTIALIZE дважды в журнале. И после дополнительного тестирования я почти уверен, что есть два myService
экземпляра. Один на контроллер. Теперь имейте в виду, что это происходит из старого проекта, который является устаревшим кодом, и может быть любая конфигурация, о которой я не знаю.
Можете ли вы объяснить это? Как я могу сделать мой сервис одноразовым?