La dependency injection in AngularJS segue un pattern specifico. E per ogni pattern esiste anche un antipattern.
L'antipattern prevede una dependecy injection implicita:
var app = angular.module('app',[]);
app.controller('MainCtrl', function($scope, $timeout) {
$timeout(function(){
console.log($scope);
}, 1000);
});
La dependecy injection implicita crea non solo problemi con la modalità strict di Angular ma genera anche confusione quando il codice viene compresso. Il pattern consigliato è invece il seguente:
var app = angular.module('app',[]);
app.controller('MainCtrl', ['$scope', '$timeout', function($scope, $timeout) {
$timeout(function(){
console.log($scope);
}, 1000);
}]);