Transclude est un paramètre qui indique à angular de capturer tout ce qui est placé à l'intérieur de la directive dans le balisage et de l'utiliser quelque part (où se trouve réellement le ng-transclude
) dans le modèle de la directive. Pour en savoir plus, consultez la section Création d'une directive qui enveloppe d'autres éléments de la documentation des directives .
Si vous écrivez une directive personnalisée, vous utilisez ng-transclude dans le modèle de directive pour marquer le point où vous souhaitez insérer le contenu de l'élément
angular.module('app', [])
.directive('hero', function () {
return {
restrict: 'E',
transclude: true,
scope: { name:'@' },
template: '<div>' +
'<div>{{name}}</div><br>' +
'<div ng-transclude></div>' +
'</div>'
};
});
Si vous mettez cela dans votre balisage
<hero name="superman">Stuff inside the custom directive</hero>
Cela se présenterait comme:
Superman
Contenu de la directive personnalisée
Exemple complet:
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
Visualisez: