2
내 지시문 중 하나에 컨트롤러가 두 개 필요하고 내 주소가 ngModel
이고 내 컨트롤러가 필요합니다.지시문에 상위 컨트롤러 사용
상위 컨트롤러는 하위 링크 기능에 삽입해야하지만 제대로 작동하지 않습니다. 내가 ... 내가 잘못 뭐하는 거지
app.directive('container', function() {
return {
transclude : true ,
template : "<div ng-transclude></div>",
controller : function ($scope) {
console.log('container controller');
$scope.v1 = '123';
$scope.f1 = function() {
console.log('f1');
};
},
link : function (scope, element) {
console.log('container link');
}
};
});
app.directive('single', function() {
return {
require : ['^container','ngModel'],
scope : false ,
link : function (scope, element, attrs , parentsCtrl) {
console.log('single link');
console.log(parentsCtrl);
var containerParent = parentsCtrl[0];
var ngModel = parentsCtrl[1];
// FAIL //
console.log(containerParent.v1);
containerParent.f1();
}
};
});
과 HTML
<div container>
<input single type="text" ng-model="my.value" />
</div>
single
지시어는 모두 컨트롤러의 생성자로 주입을 궁금하지만 container
컨트롤러가 비어 있습니다. 나는 v1
재산과 f1
기능을 찾을 것으로 예상했다. 링크 기능은 제어기 오브젝트 액세스 require
으로
와우, 감사합니다. 각도로 시작할 때 창 밖으로'this'를 던지면 ... – haki