La diferencia entre los dos es que la notación del soporte []
es a prueba de minúsculos ya que los minificadores no minimizan las cadenas. Por ejemplo, si intenta minify JavaScript sin ella, se encenderá:
angular.module('myApp', [])
.controller('MainController', function($scope) {
});
en
angular.module("myApp",[]).controller("MainController",function(e){})
El problema en este caso es que Angular no sabe nada acerca de e
en lugar de $scope
, que sí conoce. Usando la notación de corchetes []
, podemos decirle al $injector
de antemano a qué queremos que acceda el controlador. Dado que los minificadores no minimizan (y no pueden) las cadenas, es una forma segura de utilizar la función de inyección de dependencias de característica de Angular con o sin minificadores.
Para una comprensión más profunda de las diferencias de sintaxis, puede consultar ng-book (https://www.ng-book.com/). Descargo de responsabilidad, soy el autor del libro y de http://www.ng-newsletter.com/.
Puede encontrarlo en la documentación DI en el título "Anotación en línea" http://docs.angularjs.org/guide/di#inlineannotation – Oliver
Bueno, también puede usar la sintaxis menos detallada y analizar fuente con ngMin :) https : //github.com/btford/ngmin –