Angular는 서비스가 자체적으로 인스턴스화 할 때 사용되는 생성자를 사용하여 다른 서비스를 종속성으로 선언 할 수 있도록합니다.
종속성을 선언하려면 공장 메소드 선언에이를 지정하고 $ Inject Attribute (문자열 식별 배열)를 사용하거나 공장 메소드에서 배열 표기법을 사용해야합니다.
일반적으로 $ 주입 속성 선언은 폐기 될 수 있습니다 (즉, //www.vevb.com/article/91815.htm에 언급 된 암시 적 의존성 주입은 실험 속성이므로 압축 및 난독 화 후에 실패 할 것입니다.주의해서 사용하십시오!).
배열 표기법을 사용하십시오
함수 myModuleCfgfn ($ prose) {$ provery.fortory ( 'myService', [ 'dep1', 'dep2', function (dep1, dep2) {}];}$ 주입 속성을 사용하십시오
함수 myModuleCfgfn ($ prose) {var myserviceFactory = function (dep1, dep2) {}; myServiceFactory. $ inject = [ 'dep1', 'dep2']; $ provery.ctory ( 'MyService', MyServiceFactory); }암시 적 DI 사용 (압축 난독 화 코드와 호환되지 않음)
함수 myModuleCfgfn ($ prose) {$ prose.FORTORY ( 'myService', function (dep1, dep2) {});}다음은 두 가지 서비스가있는 예이며 Angular가 제공하는 다른 서비스뿐만 아니라 그 사이에 종속성이 있습니다.
/*** BatchLog 서비스를 사용하면 메시지가 메모리에서 큐를 형성하여 50 초마다 한 번씩 플러싱 할 수 있습니다. * * @param { *} 로그인 할 메시지 메시지. */ function batchlogModule ($ pross) {$ prose.Furedory ( 'BatchLog', [ '$ timeout', '$ log', function ($ timeout, $ log) {var messagequeue = []; function log () {if (messageque.log ( 'batchlog message :', messagequeue);};} $ timeout (godout); log (); return return (message) {messagequeue.push (message)]; / *** lourtetemPlatemonitor는 각 경로의 변경 사항을 모니터링하며 각 Bi'anu는 Batchlog Service*/ $ produce.furedory ( 'rountemplatemonitor', [ '$ route', 'batchlog', '$ rootscope', 기능 ($ route, batchlog, $ rootscope) {$ routchess ', $ routechans', $ routechans ' batchlog ($ route.current? $ route.template :}); } // 기본 서비스를 받고 응용 프로그램을 실행합니다 (이벤트 듣기) angular.injector ([batchlogmodule]).예에서 주목해야 할 사항 :
위의 것은 AngularJS 관리 서비스 종속성 정보의 편집입니다. 우리는 향후 관련 정보를 계속 추가 할 것입니다. 이 웹 사이트를 지원 해주셔서 감사합니다!