source

지시어의 '말단'을 어떻게 이해합니까?

bestscript 2023. 3. 6. 21:13

지시어의 '말단'을 어떻게 이해합니까?

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

지시 정의 개체

단말

true로 설정하면 현재 priority가 실행되는 마지막 디렉티브 세트가 됩니다(현재 priority의 디렉티브는 같은 priority의 실행 순서가 정의되어 있지 않기 때문에 계속 실행됩니다).

잘 모르겠어요.무엇인가.current priority그런 지시가 있는 경우:

  1. {priority: 1, terminal: false}의 directive1
  2. {priority: 10, terminal: false}의 디렉티브2
  3. {priority: 100, terminal: false}의 directive3
  4. {priority: 100, terminal: true} // 이것은 true입니다.
  5. {priority: 1000, terminal: false}의 directive5

주의해 주세요.directive4가지다terminal:true다른 사람들은 가지고 있다false.

html 태그에 5가지 디렉티브가 모두 포함되어 있는 경우:

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

5가지 지시사항의 실행순서는 어떻게 되나요?

우선 순위.

priority는 1개의 요소에 복수의 디렉티브가 있는 경우에만 관련됩니다.우선순위에 따라 이러한 지시사항을 어떤 순서로 적용/시작할지가 결정됩니다.대부분의 경우 우선순위는 필요하지 않지만 컴파일 함수를 사용할 때 컴파일 함수가 먼저 실행되도록 해야 하는 경우가 있습니다.

터미널

terminal 속성은 동일한 HTML 요소에 있는 디렉티브에만 관련이 있습니다.즉, 다음과 같은 경우<div my-directive1></div> <div my-directive2></div>,priority그리고.terminal지시대로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 my Directive 2"와 "I'm my Directive 3"만 표시됩니다.

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

다만, 「I'm my Directive 1」도 표시됩니다.이것들은 다른 요소에 있기 때문입니다.

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

오리지널 투고

이 예에서는 priority가 높은 디렉티브가 먼저 적용되므로 priority가 100인 디렉티브와 1000인 디렉티브만이 적용됩니다.

이 경우 priority가 100인 디렉티브가 2개 있는 경우 priority가 같은 디렉티브의 순서가 정의되어 있지 않기 때문에 둘 다 적용됩니다.

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

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