Angular permite que el servicio declare otros servicios como dependencias, utilizando el constructor utilizado al instancias de sí mismo.
Para declarar dependencias, necesitamos especificarlas en la declaración del método de fábrica y usar el atributo $ inyectar (matriz de identificación de cadenas) o usar la notación de matriz en el método de fábrica.
Por lo general, se puede descartar la declaración de propiedades $ inyección (es decir, la inyección de dependencia implícita mencionada en //www.vevb.com/article/91815.htm, pero esta es una propiedad experimental y fallará después de la compresión y la ofuscación, ¡úselo con precaución!).
Utilice la notación de matriz
función mymodulecfgfn ($ proporcionando) {$ proporcion.Use la propiedad $ inyect
function myModulecfgfn ($ proporcionando) {var myServiceFactory = function (dep1, dep2) {}; myServiceFactory. $ inject = ['Dep1', 'Dep2']; $ proporcionar.factory ('myService', myServiceFactory); }Uso de DI implícito (incompatible con el código ofuscado por compresión)
función mymodulecfgfn ($ proporcione) {$ proporcion.factory ('myService', function (DEP1, DEP2) {});}Aquí hay un ejemplo en el que hay dos servicios, y hay dependencias entre ellos, así como algunos otros servicios proporcionados por Angular.
/*** El servicio BatchLog permite que los mensajes formen una cola en la memoria, enjuagando una vez cada 50 segundos. * * @param { *} Mensaje del mensaje que se registrará. */ function batchLogModule ($ proporcionando) {$ proporcion.factory ('batchLog', ['$ timeOut', '$ log', function ($ timeOut, $ log) {var messagequeue = []; function log () {if (messagequeue.length) {$ log ('mensajes de batchlog:', messagequeue); log (); / *** RutetEmplatemonitor monitorea los cambios de cada ruta, y cada bi'anu lo registrará a través del servicio BatchLog*/ $ proporcion.factory ('RutetEmplatemonitor', ['$ ruta', 'BatchLog', '$ Rootscope', function ($ ruta, BatchLog, $ rootscope) {$ rootscope. BatchLog ($ ruta.current? $ ruta.current.template: null); } // Obtenga el servicio principal, ejecute la aplicación (escuche el evento) angular.injector ([batchLogModule]). Get ('RoutetEmplAtEmonitor');Cosas a tener en cuenta en el ejemplo:
Lo anterior es la compilación de la información de dependencias de servicios de gestión de AngularJS. Continuaremos agregando información relevante en el futuro. ¡Gracias por su apoyo para este sitio web!