IT박스

지시어의 '터미널'을 이해하는 방법?

itboxs 2020. 11. 20. 08:45

지시어의 '터미널'을 이해하는 방법?


이 페이지에서 : http://docs.angularjs.org/guide/directive

지시어 정의 개체

단말기

true로 설정하면 현재 우선 순위가 실행될 마지막 지시어 세트가됩니다 (동일 우선 순위에 대한 실행 순서가 정의되지 않았으므로 현재 우선 순위의 모든 지시문은 계속 실행됩니다).

나는 그것을 잘 이해하지 못한다. 무슨 current priority뜻이야? 그러한 지시문이있는 경우 :

  1. {우선 순위 : 1, 터미널 : 거짓}의 지시문 1
  2. {우선 순위 : 10, 터미널 : 거짓}의 지시문 2
  3. {우선 순위 : 100, 터미널 : 거짓}의 지시문 3
  4. {priority : 100, terminal : true}가있는 지시문 4 // true입니다.
  5. {우선 순위 : 1000, 터미널 : false}가있는 지시문 5

(가)주의 directive4terminal:true다른 사람들이 있습니다 false.

html 태그에 5 개의 지시문이 모두있는 경우 :

<div directive1 directive2 directive3 directive4 directive5></div>

5 개 지시문의 실행 순서는 무엇입니까?


우선 순위

우선 순위는 한 요소에 여러 지시문이있는 경우에만 관련됩니다. 우선 순위는 이러한 지시문이 적용 / 시작될 순서를 결정합니다. 대부분의 경우 우선 순위가 필요하지 않지만 컴파일 함수를 사용할 때 컴파일 함수가 먼저 실행되는지 확인하고 싶을 때가 있습니다.

단말기

터미널 속성은 동일한 HTML 요소에있는 지시문에만 관련됩니다. <div my-directive1></div> <div my-directive2></div>,, priorityterminal지시문이 my-directive1있고 my-directive2서로 영향을 미치지 않는 경우입니다. 이 경우에만 서로 영향을 미칩니다 <div my-directive1 my-directive2></div>.

터미널 속성은 Angular에게 그 뒤에 오는 해당 요소의 모든 지시문을 건너 뛰도록 지시합니다 (낮은 우선 순위). 따라서이 코드는이를 정리할 수 있습니다.

myModule.directive('myDirective1', function() {
    return {
        priority: 1,
        terminal: false,
        link: function() {
            console.log("I'm myDirective1");
        }
    }
});

myModule.directive('myDirective2', function() {
    return {
        priority: 10,
        terminal: true,
        link: function() {
            console.log("I'm myDirective2");
        }
    }
});

myModule.directive('myDirective3', function() {
    return {
        priority: 100,
        terminal: false,
        link: function() {
            console.log("I'm myDirective3");
        }
    }
});

이를 위해 콘솔에 "I 'm myDirective2"및 "I 'm myDirective3"만 표시됩니다.

<div my-directive1 my-directive2 my-directive3></div>

그러나이를 위해 "I 'm myDirective1"도 표시됩니다. 서로 다른 요소에 있기 때문입니다.

<div my-directive1></div>
<div my-directive2></div>
<div my-directive3></div>

원본 게시물

귀하의 예에서 우선 순위가 높은 지시문이 먼저 적용되므로 우선 순위가 100 및 1000 인 지시문 만 적용되므로 우선 순위가 1000 인 지시문이 먼저 적용됩니다.

이 경우 우선 순위가 100 인 지시문이 두 개있는 경우 동일한 우선 순위를 가진 지시문의 순서가 정의되지 않았기 때문에 둘 다 적용됩니다.

이는 동일한 요소에있는 지시문에만 적용됩니다.

참고URL : https://stackoverflow.com/questions/15266840/how-to-understand-the-terminal-of-directive