각도 서비스를 저장하기 위해 전역 개체를 사용하는 일부 코드를 상속 받았습니다. 이러한 서비스는 각 모듈의 실행 기능에서 전역 개체에 연결됩니다. 제 궁금한 점은 이것이 길을 찾아가는 데 어려움을 겪을 수 있습니까? 테스트에서 어떤 문제가 발생합니까? 이처럼 서비스를 전달하는 것은 각 컨트롤러에 모든 서비스를 주입하는 것보다 훨씬 쉽습니다. 이것을하지 않는 다른 주장은 무엇입니까? 내가 말하는 것에 대해 설명하기위한 몇 가지 코드는 다음과 같습니다.전역 개체를 사용하여 각도 의존성 주입 방지
// vars
var globalObject =
{
ng: {},
};
// Setup module
var myModule = angular.module("myModule", []);
myModule.config(doStuff);
myModule.run(setUpGlobals);
// Setup app globals
function setUpGlobals(ngRootScope, ngHttp, ngTimeout)
{
globalObject.rootScope = ngRootScope;
// angular services
globalObject.ng.http = ngHttp;
globalObject.ng.Timeout = ngTimeout;
}
setUpGlobals.$inject = ['$rootScope', '$http', '$timeout'];
감사합니다. 서비스가 필요시 인스턴스화된다는 사실을 알지 못했습니다. https://www.bennadel.com/blog/2715-services-and-factories-are-instantiated-on-demand-in-angularjs.htm –
여러분을 환영합니다. 대부분이 문제는 아니지만 자연 동작 (예 : 지연로드)에 의존하는 기능을 손상시킬 수 있습니다. – estus
질문 하나 더 : 서비스가 다른 모듈에서 싱글 톤으로 작동합니까? 그들은 동일한 모듈을 위해 수행하지만 모듈 A와 모듈 B가 서비스 1을 주입하면 서비스 1이 공유됩니까? –