Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.1k views
in Technique[技术] by (71.8m points)

angularjs - Dependency injection in Angular JS

I already read the AngularJS documentation but still don't have an answer which I understand.

Why is this used twice? One time as array elements, the second as function parameters.

someModule.controller('MyController', ['$scope', 'greeter', function($scope, greeter) {
  // ...
}]);
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

If you minify this code:

someModule.controller('MyController', function($scope, greeter) {
  // ...
});

You'll end with (something like):

someModule.controller('MyController', function(a, b) {
  // ...
});

Angular won't be able to inject the dependencies since the parameters names are lost.

On the other hand, if you minify this code:

someModule.controller('MyController', ['$scope', 'greeter', function($scope, greeter) {
  // ...
}]);

You'll end with:

someModule.controller('MyController', ['$scope', 'greeter', function(a, b) {
  // ...
}]);

The parameters names are available: Angular's DI is operational.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
...