기본적으로 AngularJS와 인젝터 서비스는 내장 AngularJS와 서비스 ($
기호로 시작하는)의 이름에 대해 컨트롤러 함수의 인수의 이름과 일치합니다
// Old way to define your controller
angular.module('yourModule')
.controller('yourController', function($scope, $http, yourService){
// Your code here
});
을하지만,이 때문에 단순히 문자열 비교를 기반으로하면 코드가 uglified 및/또는 축소 될 때 문제가 발생할 수 있습니다. 따라서
이 같은 배열 표기법을 사용하여 컨트롤러를 만들기위한 새로운 구문을 사용하는 것이 좋습니다 :
컨트롤러 기능은 사용자가 주입하고자하는 서비스로 구성된 배열로 대체됩니다
// Newer, better way to define your controller
angular.module('yourModule')
.controller('yourController', ['$scope', '$http', 'yourService', function($scope, $http, yourService){
// Your code here
}]);
공지 것을 컨트롤러 기능으로 끝납니다.당신이 사용할 수 있도록
['yourService', 'yourOtherService', function(yourService, yourOtherService){
// You can use yourService and yourOtherService here
}]
이 이름이 일치하지 않아도 :
['$http', '$scope', function(h, s){
// You can use h and s here
// h will be the $http service, s will be the $scope
}]
이제 순서대로 서비스를 주입합니다
AngularJS와는 같은 배열을 지정 최신 배열 표기법을 사용하는 것이 좋습니다. 코드를 축소하거나 uglify 한 후에도 코드가 작동 할 수 있기 때문입니다.
희망 하시겠습니까?
감사합니다. 나는 당신의 링크를 따라 갔다. 그리고 전체가 훨씬 더 궁극적으로 끝났다. [여기] (https://github.com/angular/angular.js/blob/master/src/auto/injector.js) _, 여기서 나는 마술을 발견했다. 함수를 문자열로 변환 한 다음 매개 변수를 정규 표현합니다. – aidan