축소 중 AngularJS 종속성 주입 문제를 어떻게 방지할 수 있나요?

DDD
풀어 주다: 2024-11-18 07:44:02
원래의
481명이 탐색했습니다.

How Can I Prevent AngularJS Dependency Injection Issues During Minification?

AngularJS 축소에서 주입 이름 보존

JavaScript 코드를 축소하면 AngularJS의 종속성 주입 시스템에 문제가 발생할 수 있습니다. 축소로 인해 변수 및 함수 이름이 제거되면 AngularJS가 해당 컨트롤러에 대한 종속성을 일치시키기 위해 의존하는 ID가 손상될 수 있습니다.

기존 방법

이 문제를 방지하려면 전통적인 접근 방식은 종속성을 문자열 배열로 포함하는 익명 함수를 사용하여 컨트롤러를 선언하는 것이었습니다. 이렇게 하면 축소 중에 종속성 이름이 유지됩니다.

var MyController = ['$scope', '$http', function($scope, $http) {
  // ...
}];
로그인 후 복사

Inject Method

그러나 최신 버전의 AngularJS에서 선호되는 방법은 종속성 주입을 위해 주입 구문을 사용하는 것입니다. . 이를 통해 종속성 이름을 더욱 명시적이고 정확하게 정의할 수 있어 축소 중에 해당 ID가 유지됩니다.

var MyController = function($scope, $http) {
  $http.get('https://api.github.com/repos/angular/angular.js/commits')
    .then(function(response) {
      $scope.commits = response.data
    })
};
MyController.$inject = ['$scope', '$http'];
로그인 후 복사

권장사항

항상 종속성 주입을 위해 주입 방법을 사용하세요. AngularJS. 축소 중에 종속성 이름이 보존되어 잠재적인 주입 오류를 방지합니다.

대안

편의를 위해 ng-annotate npm 패키지를 다음 작업의 일부로 사용할 수 있습니다. 귀하의 빌드 프로세스. 이 도구는 $inject 속성을 컨트롤러에 자동으로 추가하여 주석 구문의 장황함을 줄입니다.

위 내용은 축소 중 AngularJS 종속성 주입 문제를 어떻게 방지할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿