Estoy totalmente confundido acerca de inyectar en Angular. No sé dónde usar y por qué. Es utilizado solamente con la fábrica como se describe aquí?
myController.$inject = ['$scope','notify'];
Aquí notify
es el nombre de la fábrica.
Estoy totalmente confundido acerca de inyectar en Angular. No sé dónde usar y por qué. Es utilizado solamente con la fábrica como se describe aquí?
myController.$inject = ['$scope','notify'];
Aquí notify
es el nombre de la fábrica.
Que es una estrategia para apoyar la Inyección de Dependencia después de que su código es record (si usted elige minify).
Cuando se declara un controlador, la función toma parámetros:
Cuando se comprime el código, la función tendrá este aspecto:
Desde AngularJS utiliza el parámetro de la función de los nombres para inferir DI, tu código va a romper porque AngularJS no sabe acerca de
a
ob
.Para resolver este problema, se les proporcionó nuevas formas de declarar los controladores (o de otros servicios/fábricas/etc) para que la materia:
Para los controladores, el uso de la
$inject
método – aquí se pasa una matriz de literales que se asignan a los parámetros de su función de control. Por lo tanto, si usted proporcionaa continuación, el valor del primer parámetro a su función será la de un ámbito de objetos asociados con este controlador, y el segundo parámetro será el informe al servicio técnico.
Al declarar nuevos controladores, servicios, etc, se puede utilizar la matriz de sintaxis literal. Aquí, puedes hacer algo como esto:
La matriz como parámetro a la función de controlador de mapas de la DI objetos a los parámetros de la función.
Yo prefiero la Opción #2 al declarar controladores etc ya que es más fácil de leer/entender/cross-check, ya que es en el mismo lugar.
Para complementar @marca respuesta, es importante tener en cuenta que el uso de la $inyectar método en el estilo de:
le permite añadir la inyección de dependencias al edificio proveedores de que son la única angular recetas que no permitir que los ‘amigos’ de estilo de anotación
es decir:
dependencias de ser declarada.
La manera que usted debe utilizar
$inject
es:Necesitamos para este como para proteger el código de uglifying o minimización.
function(firstName,lastName)
puede llegar a convertirse enfunction(n,m)
.Así que para AngularJS se va a romper el código porque
$scope
puede ser sustituido por ‘s’. Esto es debido a que sin la$
firmar el angularJS no ser capaz de reconocer el código.Es obligatorio el uso de este formato cuando estamos teniendo
ng-strict-di
atributo