Est-il possible de limiter le contenu entre mes balises ng-content au texte? Comment puis-je faire ceci? Je comprends que je peux utiliser un paramètre d'entrée de type sécurité comme alternative, mais j'aimerais quand même savoir si cela est possible. Merci!Angular - Autorise uniquement le texte dans ng-content
2
A
Répondre
1
@Component({
selector: 'foo',
template: `
<div #wrapper>
<ng-content></ng-content>
</div>
`
})
export class FooComponent {
@ViewChild('wrapper') wrapper;
ngAfterContentInit() {
var nodes = this.wrapper.childNodes;
for (var i = 0; i < nodes.length; i++) {
if (nodes[i].nodeType != Node.TEXT_NODE) // or if (nodes[i].nodeType != 3)
throw 'Only text is supported as content
}
}
}
Voir aussi javascript check if child node is element or text node
+0
Merci pour la solution. J'espérais que c'était directement soutenu, mais il est utile de voir cette approche. –
+0
Je suis sûr qu'il n'y en a pas actuellement. Heureux d'entendre cela fonctionne pour vous. –
Pourquoi voulez-vous faire ce vs juste en utilisant une propriété d'entrée? – adharris
Préférence personnelle principalement, je le trouve plus facile à utiliser/lire. Je vais utiliser une entrée si nécessaire, mais je suis curieux ... –