그것은 무엇입니까 (예를 들어 jQuery의 명확한 정의 참조)?
지시문은 본질적으로 Angular 컴파일러가 DOM에서 찾을 때 실행 되는 함수 † 입니다. 함수는 거의 모든 것을 할 수 있으므로 지시문이 무엇인지 정의하기가 다소 어렵다고 생각합니다. 각 지시어에는 ng-repeat, tab, make-up-your-own과 같은 이름이 있으며 각 지시어는 주석에서 요소, 속성, 클래스 등을 사용할 수있는 위치를 결정합니다.
† 지시문에는 일반적으로 (포스트) 링크 기능 만 있습니다. 복잡한 지시문에는 컴파일 기능, 사전 연결 기능 및 사후 연결 기능이있을 수 있습니다.
어떤 실질적인 문제와 상황이 해결되어야합니까?
지시어가 할 수있는 가장 강력한 일은 HTML을 확장하는 것입니다. 확장은 응용 프로그램을 빌드하기위한 DSL ( Domain Specific Language )입니다. 예를 들어, 응용 프로그램이 온라인 쇼핑 사이트를 운영하는 경우 "쇼핑 카트", "쿠폰", "특별"등 지시문을 갖도록 HTML을 확장 할 수 있습니다. 'div'및 'span'이 아닌 온라인 쇼핑 '도메인 (@WTK에서 이미 언급 한대로).
지시문은 HTML을 구성 요소화할 수도 있습니다. HTML을 재사용 가능한 구성 요소로 묶습니다. ng-include를 사용하여 많은 HTML을 가져 오면 지시문을 리팩터링해야 할 때입니다.
어떤 디자인 패턴을 구현하거나 대안으로 angularjs의 의도 된 MVC / MVW 미션에 적합합니까?
지시문은 DOM을 조작하고 DOM 이벤트를 포착하는 위치입니다. 이것이 지시문의 컴파일 및 링크 함수가 모두 "요소"를 인수로받는 이유입니다. 당신은 할 수 있습니다
- 지시문을 대체 할 HTML (예 : 템플리트) 무리를 정의하십시오.
- 이 요소 (또는 그 자식)에 이벤트를 바인딩
- 수업 추가 / 제거
- text () 값을 변경하십시오
- 동일한 요소에 정의 된 속성에 대한 변경 사항을 감시합니다 (실제로 관찰되는 속성의 값입니다. 이는 범위 속성이므로 지시어는 "모델"을보고 변경 사항을 감시합니다)
- 기타
HTML에서 우리는 같은 일이
<a href="...">
,
<img src="...">
,
<br>
,
<table><tr><th>
. a, href, img, src, br, table, tr 및 th가 무엇인지 어떻게 설명 하시겠습니까? 이것이 지시어입니다.