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>