지시 정의 객체의 "요구"는 무엇을 취합니까?
require - 다른 컨트롤러를 현재의 다이렉트링크 기능에 전달해야 합니다.require에는 전달되는 디렉티브컨트롤러의 이름이 들어갑니다이러한 컨트롤러를 찾을 수 없는 경우 오류가 발생합니다.이름 앞에 다음 문자를 붙일 수 있습니다.
- ? - 오류 발생 안 함이것에 의해, 요건의 의존성이 옵션입니다.
- ^ - 부모 요소에서도 컨트롤러를 찾습니다.
위는 공식 문서의 정의입니다.여기서 애매한 점은 정확히 '지향적 컨트롤러'입니다.
예를 들어 angularjs-ui 부트스트랩프로젝트의 탭 디렉티브를 사용합니다.
angular.module('ui.bootstrap.tabs', [])
.controller('TabsController', ['$scope', '$element', function($scope, $element) {
... // omitted for simplicity
}])
.directive('tabs', function() {
return {
restrict: 'EA',
transclude: true,
scope: {},
controller: 'TabsController',
templateUrl: 'template/tabs/tabs.html',
replace: true
};
})
.directive('pane', ['$parse', function($parse) {
return {
require: '^tabs',
restrict: 'EA',
transclude: true,
scope:{
heading:'@'
},
link: function(scope, element, attrs, tabsCtrl) {
... // omitted for simplicity
},
templateUrl: 'template/tabs/pane.html',
replace: true
};
}]);
pane에는 '''가 있습니다.require: '^tabs' 「」,tabs또, 그 되어 있는 은, 「」, 「」, 「컨트롤러」, 「컨트롤러」입니다.TabsController위의 정의에 대한 나의 해석에 따르면, 그것은 다음과 같아야 한다.require: '^TabsController'require: '^tabs' 주세요.제 이해에 부족한 점을 알려주세요.
require파라미터(프리픽스 포함)는 API 참조 페이지에 기재되어 있습니다.
다른 디렉티브를 요구하여 링크 함수의 네 번째 인수로 해당 컨트롤러를 주입합니다.require는 전달되는 디렉티브의 문자열 이름(또는 문자열 배열)을 사용합니다.배열을 사용하는 경우 삽입된 인수는 대응하는 순서로 배열이 됩니다.이러한 디렉티브를 찾을 수 없거나 디렉티브에 컨트롤러가 없는 경우 오류가 발생합니다.이름 앞에 다음 문자를 붙일 수 있습니다.
- (프리픽스 없음): 현재 요소에서 필요한 컨트롤러를 찾습니다.찾을 수 없는 경우 오류를 발생시킵니다.
?하거나 - 를 통과합니다.nulllinkfn: Fn: Fn: Fn은 fn을 사용합니다.^- 한 컨트롤러를 찾습니다. - 필요한 컨트롤러의 위치를 확인합니다.을 사용하다^^한 컨트롤러를 찾습니다 요 、 요 、 요 、 - 、 - 、 - - - - 。을 사용하다?^- 및그의 위치를 하거나 - 를 통과합니다.nulllinkfn: Fn: Fn: Fn은 fn을 사용합니다.?^^를 검색하여 - 를 통과합니다.nulllinkfn을 찾을 수 없는 경우
이 문서의 특정 주제는 매우 혼란스럽지만 모든 것이 이치에 맞는 것처럼 보입니다.
이 정의의 이면에 있는 논리를 이해하는 열쇠는 '디렉티브컨트롤러'가 컨트롤러 팩토리가 아닌 디렉티브컨트롤러 인스턴스를 참조하고 있음을 이해하는 것입니다.
탭의 예에 따라서,tabs요소가 생성되어 새로운 인스턴스가 생성됩니다.TabsController또한 다음과 같은 특정 요소 데이터에 생성되어 연결됩니다.
tabElement.data('$tabsController', tabsControllerInstance)
그require: '^tabs'에서paneelement는 기본적으로 특정 컨트롤러 인스턴스에 대한 요구).tabsControllerInstance)가 부모에게 사용되고 있다.tabs요소.
언급URL : https://stackoverflow.com/questions/14915332/what-does-require-of-directive-definition-object-take
'programing' 카테고리의 다른 글
| useRef "값을 참조하지만 여기서 유형으로 사용되고 있습니다." (0) | 2023.04.03 |
|---|---|
| React Native에서 라디오 버튼을 구현하는 방법 (0) | 2023.04.03 |
| $httpBackend 조롱 - "예기치 않은 요청, 더 이상 예상되지 않은 요청" 처리 방법 (0) | 2023.04.03 |
| 워드프레스의 클라우드 프런트 SSL 문제.리다이렉트가 너무 많다 (0) | 2023.04.03 |
| 각도 필터는 작동하지만 "10$digest 반복 도달"의 원인이 됩니다. (0) | 2023.04.03 |