La differenza tra i due è che la notazione delle parentesi []
è minifier-safe poiché i minificatori non riducono le stringhe. Per esempio, se si tenta di Minimizza JavaScript senza di essa, si rivelerà:
angular.module('myApp', [])
.controller('MainController', function($scope) {
});
in
angular.module("myApp",[]).controller("MainController",function(e){})
Il problema in questo caso è che Angular non sa nulla di e
al contrario di $scope
, di cui è a conoscenza. Usando la notazione delle parentesi []
, possiamo dire al $injector
in anticipo cosa vogliamo che il controllore abbia accesso. Poiché i minificatori non (e non possono) ridimensionare le stringhe, è un modo sicuro per utilizzare la funzione di distribuzione delle dipendenze di Angular con o senza minifiers.
Per una comprensione più approfondita delle differenze di sintassi, è possibile consultare ng-book (https://www.ng-book.com/). Disclaimer, sono l'autore del libro e di http://www.ng-newsletter.com/.
È possibile trovarlo nella documentazione DI con il titolo "Annotazione in linea" http://docs.angularjs.org/guide/di#inlineannotation – Oliver
Bene, è anche possibile utilizzare la sintassi meno dettagliata e la sorgente di analisi con ngMin :) https : //github.com/btford/ngmin –