Syntaxe
<ng-transclude ng-transclude-slot="expression"></ng-transclude>
|
Syntaxe par élément |
<element ng-transclude="expression"></element>
|
Syntaxe par attribut |
<element class="ng-transclude: expression;"></element>
|
Syntaxe par classe |
Paramètres
Nom |
Description |
element |
Ce paramètre permet d'indiquer une balise. |
expression |
Ce paramètre permet d'indiquer une expression contenant le nom de la fente à insérer à ce point. |
Description
Cette directive permet de fixer un point où insérer les éléments «transclude».
Remarques
- Principe de base : La directive ng-transclude permet d'insérer dynamiquement du contenu HTML dans une
composante personnalisé. Elle joue un rôle similaire au fente des Web Components modernes, permettant de transférer du contenu depuis l'extérieur d'une directive ou d'une
composante vers son gabarit interne.
- Usage avec des directives personnalisées : ng-transclude est souvent utilisé dans les directives AngularJS définies avec directive pour insérer
des contenus fournis par l'utilisateur dans un emplacement spécifique du gabarit de cette directive. Cela rend les composants plus flexibles et réutilisables.
- Étendue parent conservé : Le contenu transclus n'est pas isolé dans l'étendue de la directive mais conserve l'étendue parent où il a été défini. Cela
signifie que les expressions AngularJS (comme {{variable}}) utilisées dans le contenu transclus se résoudront dans le contexte de l'étendue parent.
- Flexibilité dans la structure des gabarits : Avec ng-transclude, vous pouvez facilement créer des composantes enveloppant ou augmentant le contenu fourni
sans en altérer la structure ou le comportement. Cela est particulièrement utile pour des designs complexes ou des composants comme des onglets ou des panneaux.
- Transclusion multiple : AngularJS permet également la transclusion multiple en utilisant des balises nommées avec la syntaxe
ng-transclude="slotName". Cela permet de définir plusieurs zones dans une composante où différents types de contenus peuvent être injectés, en rendant les composantes plus
modulaires.
- Débogage et erreurs courantes : Une erreur fréquente avec ng-transclude est l'oubli de définir l'attribut transclude: true dans la directive. Sans
cela, ng-transclude ne fonctionne pas et le contenu externe ne sera pas inséré dans la directive.
- Différence avec interpolation classique : Contrairement à l'interpolation classique (comme {{expression}}), ng-transclude insère directement des noeuds
DOM entiers. Cela inclut les balises HTML, les attributs, et les directives
AngularJS associées, ce qui en fait un outil puissant pour manipuler des blocs entiers de contenu.
Dernière mise à jour : Dimanche, le 9 décembre 2018