카테고리 없음

[angularjs] Angular에서 동일한 지시문을 두 번 선언하는 목적은 무엇입니까?

행복을전해요 2021. 2. 7. 20:26

여러 지시문에 동일한 이름을 사용할 수 있으며 ngInclude ngInclude.js 의 소스 코드를 살펴보면 모든 지시문이 우선 순위 속성을 가지고 있음을 알 수 있습니다. 첫 번째는 400이고 마지막은 -400입니다. Priority는 실제로 이름은 같지만 우선 순위가 다른 지시문이 실행되는 순서를 나타냅니다.

어떤 이유로 든 지시문을 첨부 할 수도 있지만 필요한 것을 렌더링하도록 더 낮은 우선 순위를 추가합니다. 기본 ng- 지시문을 재정의하는 것은 권장되지 않습니다.

-------------------

당신은 두 번째 링크는 핵심 각 지침의 컴파일을 보이고있다. .directive컴파일 제공자가 빌드 하는 함수$provide.provider('$compile', $CompileProvider).

첫 번째 링크는 ngInclude의 선언을 보여줍니다 ngIncludeFillContentDirective. 당신은 볼 수 ngIncludeFillContentDirective 의존ngInclude.

나는 컴파일하는 동안 컴파일 ngInclude되기 전에 먼저 컴파일해야 할 것이라고 확신합니다 ngIncludeFillContentDirective.

그래서 나는 이것이 .directive컴파일 프로세스를 주문하고 올바른 순서로 종속성을 구축하기 위해 연결되어 있다고 생각합니다 .

편집 :
그래서, 여기에 대한 현재 소스$CompileProvider있습니다. 이 개체에라는 함수가 있습니다 directive. OP에서 호출되는 함수입니다.

매개 변수가 문자열이 아닌 경우 매개 변수 객체에서 다음 행을 호출하는 것을 볼 수 있습니다.

forEach(name, reverseParams(registerDirective));

이것은 본질적으로 forEach매개 변수 개체의 속성을 반복하는 데 사용 됩니다. forEach객체에서 키를 꺼내 다음을 수행합니다.

iterator.call(context, obj[key], key);

따라서 값만 사용합니다 .

이것이 요약되는 것은 객체 (So, ngIncludein {ngInclude: ngIncludeFillContentDirective}) 의 속성 이름 이 고유해야한다는 것입니다. 속성 ( ngIncludeFillContentDirective) 의 값 은 등록 된 값입니다 .

그래서 특별한 의미가없는 것 같습니다. 적어도 내가 찾을 수있는 것은 없습니다.



출처
https://stackoverflow.com/questions/22050264