Because Angularjs is based on the parameter name of the controller constructor, the dependent service name is inferred. So if you want to compress the controller's JS code, all of its parameters will be compressed at the same time, the dependency injection system will not be able to correctly identify the service.
If the name of our controller is: Bookctrl, the code before compression is:
var Bookctrl = function ($scope, $http) {/* Constructor body */};
To overcome the problem caused by compression, simply assign a value to the $inject property in the controller function to an array of dependent service identifiers:
Bookctrl. $inject = [' $scope ', ' $http '];
Another method can also be used to specify a dependency list and avoid compression problems-using a JavaScript array to construct the controller: placing the service to be injected into a string array (representing the dependent name), the last element of the array is the Controller's method function:
var Bookctrl = [' $scope ', ' $http ', function ($scope, $http) {/* Constructor body */}];
The two methods mentioned above can work perfectly with any function that Angularjs can inject, depending on the programming style of your project.we recommend using array mode。