중첩 된 지시문을 통해 중계를 내리고 가장 안쪽의 지시문에 데이터를 바인딩하는 방법을 파악하려고합니다. 데이터를 데이터 목록에 바인딩하는 목록 유형 컨트롤과 같이 생각하면 데이터를 표시하는 데 사용할 템플릿이 삽입됩니다. 다음은 단일 값에 바인딩 된 기본 예제입니다 (여기에는 plunk). 당신이 볼 수 있듯이중첩 된 지시문을 통해 각도에서 Transclusion을 전달하는 방법은 무엇입니까?
HTML
<body ng-app="myApp" ng-controller="AppCtrl as app">
<outer model="app.data"><div>{{ source.name }}</div></outer>
</body>
자바 스크립트
angular.module('myApp', [])
.controller('AppCtrl', [function() {
var ctrl = this;
ctrl.data = { name: "Han Solo" };
ctrl.welcomeMessage = 'Welcome to Angular';
}])
.directive('outer', function(){
return {
restrict: 'E',
transclude: true,
scope: {
model: '='
},
template: '<div class="outer"><inner my-data="model"><div ng-transclude></div></div></div>'
};
})
.directive('inner', function(){
return {
restrict: 'E',
transclude: true,
scope: {
source: '=myData'
},
template :'<div class="inner" my-transclude></div>'
};
})
.directive('myTransclude', function() {
return {
restrict: 'A',
transclude: 'element',
link: function(scope, element, attrs, controller, transclude) {
transclude(scope, function(clone) {
element.after(clone);
})
}
}
});
의 매개자 비트가 나타나지 않습니다. 이견있는 사람?
사용자 정의 transclude 지시문이 있어야합니까? –
transclude 시도 : { "inner": "inner"} 사실이 아니십니까? – nixkuroi
최종 출력물을 원하는대로 이해하는 데 도움이 될까요? '