J'essaie de créer un composant personnalisé en utilisant plusieurs contenus dans angular 6, mais cela ne fonctionne pas et je ne sais pas pourquoi.
Ceci est mon code composant:
<div class="header-css-class">
<ng-content select="#header"></ng-content>
</div>
<div class="body-css-class">
<ng-content select="#body"></ng-content>
</div>
J'essaie d'utiliser ce composant à un autre endroit et de rendre deux codes HTML différents à l'intérieur du corps et de la sélection d'en-tête de ng-content, quelque chose comme ceci:
<div #header>This should be rendered in header selection of ng-content</div>
<div #body>This should be rendered in body selection of ng-content</div>
Mais le composant est rendu vide. Savez-vous ce que je peux faire de mal ou quel est le meilleur moyen de rendre deux sections différentes dans le même composant?
Merci!
header
et body
par opposition aux références de modèle (#header, #body)
.ng-content
avec l'attribut select
comme select="[header]"
.app.comp.html
<app-child>
<div header >This should be rendered in header selection of ng-content</div>
<div body >This should be rendered in body selection of ng-content</div>
</app-child>
child.comp.html
<div class="header-css-class">
<ng-content select="[header]"></ng-content>
</div>
<div class="body-css-class">
<ng-content select="[body]"></ng-content>
</div>
alternativement, vous pouvez utiliser:
app.comp.html
<app-child>
<div role="header">This should be rendered in header selection of ng-content</div>
<div role="body">This should be rendered in body selection of ng-content</div>
</app-child>
child.comp.html
<div class="header-css-class">
<ng-content select="div[role=header]"></ng-content>
</div>
<div class="body-css-class">
<ng-content select="div[role=body]"></ng-content>
</div>