programing

디렉티브의 링크 기능의 파라미터는 DI에 의존합니까?

golfzon 2023. 3. 5. 10:49
반응형

디렉티브의 링크 기능의 파라미터는 DI에 의존합니까?

입력:

module.directive 'name', ->
  (scope, element, attr) ->
    # Whatever implemenation

를 실행합니다.scope,element그리고.attrs링크 함수의 파라미터는 name-inferent Dependency-Injection에 의존합니까?그렇다면 어떻게 하면 최소화를 증명할 수 있을까요?

아니면 그들은 자신에게 전해진 것을 좋은 오래된 논쟁의 질서에 의존하는가?

아니요, 링크 함수에는 사전 정의된 일련의 파라미터가 있습니다.

function link($scope, $element, attrs, ctrl) {
    //Your method
}

그들은 그렇다.

  1. 요소의 범위
  2. 요소 자체(jquery/mini jquery 랩)
  3. 요소의 Atribute set
  4. 에서 사용되는 모든 컨트롤러required

디렉티브와 함께 DI를 사용하는 경우(내 경우와 같이), 링크 함수 대신 디렉티브팩토리 함수에 삽입할 인수를 넣습니다.

module.directive('name', function($timeout) {
    return function(scope, element, attrs) {
        ...
    };
});

최소화를 허용하려면 컨트롤러와 마찬가지로 배열에 function 인수를 입력합니다.

module.directive('name', ['$timeout', function($timeout) {
    return function(scope, element, attrs) {
        ...
    };
}]);

문서현재 시각 예를 참조하십시오.

편집: 다음 명령어를 삽입하는 데모는 여기를 참조하십시오.$timeout서비스.지시문을 반환할 때도 동일한 작업을 수행할 수 있습니다(예:return {restrict: 'E', link: function() {...}}함수가 아닌 오브젝트).

언급URL : https://stackoverflow.com/questions/15871129/do-the-parameters-of-a-directives-link-function-rely-on-di

반응형