Skip to content

Latest commit

 

History

History
69 lines (52 loc) · 5.26 KB

angularJS_Chapter11.md

File metadata and controls

69 lines (52 loc) · 5.26 KB

angularJS 11장

작성자 : 이기섭

작성일 : 2016-02-06

엘리먼트 디렉티브 활용

디렉티브의 가장 첫 쓰임새는 문서 객체 모델(DOM)에서 엘리먼트를 설정하고 스타일을 적용하는데 사용한다.
아래는 엘리먼트 디렉티브 종류이다.

디렉티브 적용 방식 설명
ng-if 어트리뷰트 DOM에서 엘리먼트를 추가 및 제거한다.
ng-class 어트리뷰트, 클래스 엘리먼트의 class 어트리뷰트를 설정한다.
ng-class-even 어트리뷰트, 클래스 ng-repeat 디렉티브 내에 생성된 짝수 번째 엘리먼트에 class 어트리뷰트를 설정한다.
ng-class-odd 어트리뷰트, 클래스 ng-repeat 디렉티브 내에 생성된 홀수 번째 엘리먼트에 class 어트리뷰트를 설정한다.
ng-hide 어트리뷰트, 클래스 DOM 내 엘리먼트를 보여주거나 숨긴다.
ng-show 어트리뷰트, 클래스 DOM 내 엘리먼트를 보여주거나 숨긴다.
ng-style 어트리뷰트, 클래스 하나 이상의 CSS 속성을 설정한다.

이벤트 처리

이벤트가 일어날 때 커스텀 동작을 지정할 수 있는 이벤트 디렉티브를 정의하고 있다.
아래는 이벤트 디렉티브의 종류이다.

디렉티브 적용 방식 설명
ng-blur 어트리뷰트, 클래스 엘리먼트가 포커스를 잃을 때 일어나는 blur 이벤트에 대한 커스텀 동작을 지정한다.
ng-change 어트리뷰트, 클래스 컨텐츠의 상태가 바뀔 때 (체크박스가 선택될 때, ㅑinput 엘리먼트의 텍스트가 편집될 때 등) 폼엘리먼트에서 일어나는 change이벤트에 대한 커스텀 동작을 지정한다.
ng-click 어트리뷰트, 클래스 사용자가 마우스/포인터를 클릭할 때 일어나는 click 이벤트에 대한 커스텀 동작을 지정한다.
ng-copy
ng-cut
ng-paste
어트리뷰트, 클래스 복사, 잘라내기, 붙여넣기 이벤트에 대한 커스텀 동작을 지정한다.
ng-dblclick 어트리뷰트, 클래스 사용자가 마우스/포인터를 더블클릭할 때 일어나는 dblclick 이벤트에 대한 커스텀 동작을 지정한다.
ng-focus 어트리뷰트, 클래스 엘리먼트가 포커스를 얻을 때 일어나는 focus이벤트에 대한 커스텀 동작을 지정한다.
ng-keydown
ng-keyup
ng-keypress
어트리뷰트, 클래스 사용자가 키를 누르거나 키에서 손을 뗄 때 일어나는 keydown, keyup, keypress 이벤트에 대한 커스텀 동작을 지정한다.
ng-mousedown
ng-mouseenter
ng-mouseleave
ng-mousemove
ng-mouseover
ng-mouseup
어트리뷰트, 클래스 사용자가 마우스/포인터를 사용해 엘리먼트와 상호작용할 때 일어나는 6가지 포준 마우스 이벤트(mousedown, mouseenter, mouseleave, mousemove, mouseover, mouseup)에 대한 커스텀 동작을 지정한다.
ng-submit 어트리뷰트, 클래스 폼이 전송될 때 일어나는 submit 이벤트에 대한 커스텀 동작을 지정한다. AngularJS의 폼 지원기능에 대해서는 12장을 참조하자.

###특수 어트리뷰트 관리

HTML의 쿼크로 인해 AngularJS에서 일부 어트리뷰트가 문제를 일으켜 어쩔 수 없이 디렉티브를 사용해야 하는 경우가 있다.
그 중 하나가 어트리뷰트의 존재 여부로 속성이 결정되는 경우이다.
예를 들자면 disabled와 같은 경우인데, 이 경우 disabled의 존재만으로 해당 속성이 발생되며,
이 속성을 일반적으로는 제거할 수가 없다.
이런 것을 해결하는 것이 불리언 어트리뷰트 디렉티브이다.

불리언 어트리뷰트 디렉티브

아래는 불리언 디렉티브의 종류이다.

디렉티브 적용 방식 설명
ng-checked 어트리뷰트 checked 어트리뷰트를 관리(input 엘리먼트에 사용)한다.
ng-disabled 어트리뷰트 disabled 어트리뷰트를 관리(input 및 button 엘리먼트에 사용)한다.
ng-open 어트리뷰트 onen 어트리뷰트를 관리(details 엘리먼트에 사용)한다.
ng-readonly 어트리뷰트 readonly 어트리뷰트를 관리(input 엘리먼트에 사용)한다.
ng-selected 어트리뷰트 seleted 어트리뷰트를 관리(option 엘리먼트에 사용)한다.
기타 어트리뷰트 관리

AngularJS에서 직접적으로 작업을 수행할 수 없는 다른 어트리뷰트와 연동하는 디렉티브가 세가지 더 있다.
이들을 아래표에 정리하였다.

디렉티브 적용 방식 설명
ng-href 어트리뷰트 a 엘리먼트의 href 어트리뷰트를 설정한다.
ng-src 어트리뷰트 img 엘리먼트의 src 어트리뷰트를 설정한다.
ng-srcset 어트리뷰트 img 엘리먼트의 srcset 어트리뷰트는 HTML5 확장을 위한 초안의 표준으로, 각기 다른 화면 크기 및 픽셀 밀도별로 여러이미지를 지정하게 해준다. 아직까지 브라우저 지원 수준은 제한적이다.