2016-09-08 3 views
0

angularJS 지시문을 설명하는 amazing video을 찾았습니다. 그러나, 나는 그것에 대해 질문이 있다고 들었다.angularJS 지시문 이름은 고유 한 것입니까 (그렇지 않은 것입니까?)?

"각 지시문 이름은 고유하지 않으므로 각 이름에 대해 여러 개의 지시문 팩토리가있을 수 있음을 지원해야합니다."

^잘 모르겠습니다. 발표자가 동일한 지시어 이름을 다른 공장 기능으로 두 번 다시 선언 할 수 있다고 말하고 있습니까? 아래 코드와 같은 것입니다. 누군가를 명확히 할 수 있다면

app.directive('myDirective', function() { 
    return { 
    template: '<h1>hello</h1>' 
    } 
}); 

app.directive('myDirective', function() { 
    return { 
    template: '<h1>hi</h1>' 
    } 
}); 

은 그러나이 같은 코드는 ... 그것은 좋은 것입니다 오류를 던지는 것 같습니다.) AngularJS와 각 지시어?와 b에 대해 여러 공장 기능을 저장 않습니다.)이 가능한 경우 언제 어떻게 할 수 있을까요?

+0

어떤 오류가 발생합니까? 필자는 그것을 한 적이 없지만 마지막으로 선언 된 서비스, 지시문 등이 동일한 이름으로 선언 된 다른 것을 덮어 쓰는 것을 이해하고있었습니다. 예를 들어 같은 서비스를 가진 두 개의 개별 모듈을 가져 오는 경우. – ste2425

답변

0

angular tips에 따르면 동일한 이름을 가진 2 개의 지시문을 사용할 수 있으며 함께 작동합니다. 주석에서 격리 된 범위가 없거나 컨트롤러가 필요하다고 언급되어 있습니다.

두 개의 지시문을 동일한 이름과 다른 템플릿으로 사용하려고 시도했지만 첫 번째 템플릿이 사용되었지만 오류는 발생하지 않았습니다 (jsfiddle).

<div ng-app="ui.directives"> 
    <my-d></my-d> 
</div> 


var dirs = angular.module('ui.directives', []); 
dirs.directive('myD', 
    function() { 
    return { 
     restrict: 'E', 
     template: 'hey' 
    }; 
    } 
); 
dirs.directive('myD', 
    function() { 
    return { 
     restrict: 'E', 
     template: 'hello', 
    }; 
    } 
); 

무엇이 오류입니까? jsfiddle을 추가하십시오.

+0

이 오류가 각도 1.0.0.js : 5525 오류 : 여러 지시어 [myD, myD]에서 템플릿을 묻는 메시지 : 하지만 어쨌든 코드가 작동한다고 생각합니다. 감사... –

관련 문제