angularJS는 용어는 카멜표기법으로 쓰고 사용할때는 대문자앞에 - 를 추가하여 사용한다.
ex) ngApp -> <html ng-app>, ngRepeat -> <div ng-repeat="">
ngApp
ngApp은 일종의 컨테이너로 HTML 문서당 하나의 ngApp만 사용 할 수 있다.
module
ngApp 안에 여러개의 모듈을 정의해서 사용 가능하며 모듈에는 Config객체, Controller, Directives, Filter가 포함된다.
- Config는 sevice provider, $route등의 설정을 한다.
- Controller는 데이터나 이벤트를 처리한다.
- Directives는 모듈 내에서 사용하는 사용자 정의 지시자이다.
- Filter는 사용자 정의 필터를 말한다.
Directives는 View 내에서 메세지를 전달하거나 전달받는 용도로 사용된다. 대표적으로 ng-model이 있으며 다양한 지시자가 존재한다.
Expression 표현식은 {{some}}같이 안에 모델명을 넣어 사용한다. 표현식은 단방향으로 연산 결과를 출력하는 역할만 한다.
Controller는 실질적으로 데이터를 처리하는 부분으로 스크립트단 코드는 모두 컨트롤러 내에 작성한다.
service provider는 모듈에 독립적인 존재로 예를 들면 $http라는 서비스를 사용하여 ajax 처리를 할 수 있다.
$interval이라는 서비스를 사용하면 setInterval()과 같은 기능을 사용할 수 있다.
서비스 프로바이더는 어떤 서비스를 사용하고 싶을 때 프로바이더를 통해 가져오는 개념이다.
사용법은
fuction Ctrl($scope,$http, $interval{
}
위와같이 작성하면 컨트롤러 내에서 서비스를 사용 할 수 있다.
2-way data binding
2-way data binding은 뷰와 모델사이의 데이터 동기화를 의미한다. 뷰나 모델 둘중 하나의 데이터가 변경되는걸 감시하다가 변경이 감지되면 양쪽 모두의 데이터를 갱신한다.