AngularJS 모듈


AngularJS 모듈은 애플리케이션을 정의합니다.

모듈은 애플리케이션의 여러 부분을 위한 컨테이너입니다.

모듈은 애플리케이션 컨트롤러의 컨테이너입니다.

컨트롤러는 항상 모듈에 속합니다.


모듈 만들기

AngularJS 함수를 사용하여 모듈을 만듭니다.angular.module

<div ng-app="myApp">...</div>

<script>

var app = angular.module("myApp", []);

</script>

"myApp" 매개변수는 애플리케이션이 실행될 HTML 요소를 나타냅니다.

이제 AngularJS 애플리케이션에 컨트롤러, 지시문, 필터 등을 추가할 수 있습니다.


컨트롤러 추가

애플리케이션에 컨트롤러를 추가하고 ng-controller지시문 으로 컨트롤러를 참조하십시오.

예시

<div ng-app="myApp" ng-controller="myCtrl">
{{ firstName + " " + lastName }}
</div>

<script>

var app = angular.module("myApp", []);

app.controller("myCtrl", function($scope) {
  $scope.firstName = "John";
  $scope.lastName = "Doe";
});

</script>

이 튜토리얼의 뒷부분에서 컨트롤러에 대해 자세히 알아볼 것입니다.



지시문 추가

AngularJS에는 애플리케이션에 기능을 추가하는 데 사용할 수 있는 일련의 내장 지시문이 있습니다.

전체 참조를 보려면 AngularJS 지시문 참조 를 방문하세요 .

또한 모듈을 사용하여 애플리케이션에 고유한 지시문을 추가할 수 있습니다.

예시

<div ng-app="myApp" w3-test-directive></div>

<script>
var app = angular.module("myApp", []);

app.directive("w3TestDirective", function() {
  return {
    template : "I was made in a directive constructor!"
  };
});
</script>

이 자습서의 뒷부분에서 지시문에 대해 자세히 알아볼 것입니다.


파일의 모듈 및 컨트롤러

AngularJS 애플리케이션에서는 모듈과 컨트롤러를 JavaScript 파일에 넣는 것이 일반적입니다.

이 예에서 "myApp.js"는 애플리케이션 모듈 정의를 포함하고 "myCtrl.js"는 컨트롤러를 포함합니다.

예시

<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<body>

<div ng-app="myApp" ng-controller="myCtrl">
{{ firstName + " " + lastName }}
</div>

<script src="myApp.js"></script>
<script src="myCtrl.js"></script>

</body>
</html>

myApp.js

var app = angular.module("myApp", []);

모듈 정의의 [] 매개변수는 종속 모듈을 정의하는 데 사용할 수 있습니다.

[] 매개변수가 없으면 새 모듈을 만드는 것이 아니라 기존 모듈을 검색 하는 것입니다.

myCtrl.js

app.controller("myCtrl", function($scope) {
  $scope.firstName = "John";
  $scope.lastName= "Doe";
});

함수가 전역 네임스페이스를 오염시킬 수 있음

전역 함수는 JavaScript에서 피해야 합니다. 다른 스크립트에 의해 쉽게 덮어쓰이거나 파괴될 수 있습니다.

AngularJS 모듈은 모든 기능을 모듈에 로컬로 유지하여 이 문제를 줄입니다.


라이브러리를 로드할 때

HTML 애플리케이션에서는 요소의 끝에 스크립트를 배치하는 것이 일반적이지만 <body>AngularJS 라이브러리 <head><body>.

이는 angular.module라이브러리가 로드된 후에만 에 대한 호출을 컴파일할 수 있기 때문입니다.

예시

<!DOCTYPE html>
<html>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>

<div ng-app="myApp" ng-controller="myCtrl">
{{ firstName + " " + lastName }}
</div>

<script>
var app = angular.module("myApp", []);
app.controller("myCtrl", function($scope) {
  $scope.firstName = "John";
  $scope.lastName = "Doe";
});
</script>

</body>
</html>