>  기사  >  웹 프론트엔드  >  AngularJS를 버전 1.3으로 마이그레이션하는 동안 \"$injector:modulerr\" 오류가 발생하는 이유는 무엇입니까?

AngularJS를 버전 1.3으로 마이그레이션하는 동안 \"$injector:modulerr\" 오류가 발생하는 이유는 무엇입니까?

DDD
DDD원래의
2024-11-01 00:10:02718검색

Why Am I Getting the

Angularjs 오류: [$injector:modulerr] V1.3으로 마이그레이션하는 동안

Angularjs에서 [$injector:modulerr] 오류 특히 이전 버전에서 V1.3으로 마이그레이션할 때 모듈 종속성 문제를 나타냅니다.

V1.3 이전 Angularjs 코드:

<code class="html"><body>
  <div ng-controller="Ctrl">
    ...
    <script>
      var Ctrl = function($scope) {
        ...
      };
    </script>
  </div>
</body></code>

게시물 -V1.3 Angularjs 코드:

<code class="html"><body ng-app="app">
  <div ng-controller="Ctrl">
    ...
  </div>
  <script>
    function Ctrl($scope) {
      ...
    }

    angular.module('app', [])
      .controller('Ctrl', ['$scope', Ctrl]);
  </script>
</body></code>

V1.3의 변경 사항:

  • 전역 컨트롤러 선언 비활성화됨: Angularjs V1.3 이후에는 전역 컨트롤러 함수를 모듈 외부에서 선언할 수 없습니다. 대신 컨트롤러를 모듈 내에 등록해야 합니다.
  • ng-app 지시문 필수: Angularjs 애플리케이션을 부트스트랩하려면 루트 요소에 ng-app 지시문이 있어야 합니다.

해결책:

  1. Angularjs 모듈 만들기: 'app'이라는 모듈을 정의하려면 angle.module()을 사용하세요.
  2. 모듈 내에 컨트롤러 등록: 모듈에서 .controller()를 호출하여 적절한 종속성과 컨트롤러 기능을 갖춘 'Ctrl'이라는 컨트롤러를 정의합니다.
  3. 루트 요소에 ng-app 추가: 루트 HTML 요소에 ng-app 속성이 있는지 확인하세요.

추가 참고 사항:

  • 안정성과 보안상의 이유로 최신 버전의 Angularjs(1.6 이상)를 사용하는 것이 좋습니다.
  • 글로벌 컨트롤러 선언을 지원해야 하는 경우 angle.config().allowGlobalScoping()을 사용할 수 있습니다. 그러나 이는 최선의 방법은 아닙니다.

위 내용은 AngularJS를 버전 1.3으로 마이그레이션하는 동안 \"$injector:modulerr\" 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.