Transclude ist eine Einstellung, mit der Angular angewiesen wird, alles, was in der Direktive im Markup enthalten ist, zu erfassen und irgendwo (wo sich das tatsächlich ng-transclude
befindet) in der Vorlage der Direktive zu verwenden. Lesen Sie mehr dazu unter eine Richtlinie vor, dass Wraps Andere Elemente anlegen Abschnitt Dokumentation von Richtlinien .
Wenn Sie eine benutzerdefinierte Direktive schreiben, verwenden Sie ng-transclude in der Direktivenvorlage, um den Punkt zu markieren, an dem Sie den Inhalt des Elements einfügen möchten
angular.module('app', [])
.directive('hero', function () {
return {
restrict: 'E',
transclude: true,
scope: { name:'@' },
template: '<div>' +
'<div>{{name}}</div><br>' +
'<div ng-transclude></div>' +
'</div>'
};
});
Wenn Sie dies in Ihr Markup einfügen
<hero name="superman">Stuff inside the custom directive</hero>
Es würde sich zeigen wie:
Übermensch
Sachen in der benutzerdefinierten Direktive
Vollständiges Beispiel:
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
Visualisieren: