Transclude to ustawienie pozwalające kątowi uchwycić wszystko, co jest umieszczone w dyrektywie w znacznikach i użyć go gdzieś (gdzie tak naprawdę ng-transclude
jest) w szablonie dyrektywy. Przeczytaj więcej na ten temat w sekcji Tworzenie dyrektywy, która otacza inne elementy dotyczące dokumentacji dyrektyw .
Jeśli piszesz niestandardową dyrektywę, używasz ng-tranclude w szablonie dyrektywy, aby zaznaczyć punkt, w którym chcesz wstawić zawartość elementu
angular.module('app', [])
.directive('hero', function () {
return {
restrict: 'E',
transclude: true,
scope: { name:'@' },
template: '<div>' +
'<div>{{name}}</div><br>' +
'<div ng-transclude></div>' +
'</div>'
};
});
Jeśli umieścisz to w swoim znaczniku
<hero name="superman">Stuff inside the custom directive</hero>
Wygląda to tak:
Nadczłowiek
Rzeczy wewnątrz niestandardowej dyrektywy
Pełny przykład:
Index.html
<body ng-app="myApp">
<div class="AAA">
<hero name="superman">Stuff inside the custom directive</hero>
</div>
</body>
jscript.js
angular.module('myApp', []).directive('hero', function () {
return {
restrict: 'E',
transclude: true,
scope: { name:'@' },
template: '<div>' +
'<div>{{name}}</div><br>' +
'<div ng-transclude></div>' +
'</div>'
};
});
Output markup
Wizualizuj: