2017-04-05 2 views
2

Ist es möglich, den Inhalt zwischen meinen ng-Content-Tags auf nur Text zu beschränken? Wie kann ich das machen?Angular - Nur Text in ng-content zulassen

Ich verstehe, ich kann einen typsicheren Eingabeparameter als Alternative verwenden, aber ich würde immer noch gerne wissen, ob dies möglich ist. Vielen Dank!

+0

Warum wollen Sie dies tun vs nur eine Eingangs Eigenschaft verwenden? – adharris

+0

Persönliche Vorliebe hauptsächlich, finde ich es einfacher zu verwenden/lesen. Ich werde einen Eingang verwenden, wenn nötig, aber ich bin neugierig ... –

Antwort

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 
    } 
    } 
} 

Siehe auch javascript check if child node is element or text node

+0

Danke für die Lösung. Ich hatte gehofft, dass es direkt unterstützt wird, aber es ist hilfreich, diesen Ansatz zu sehen. –

+0

Ich bin mir sicher, dass es derzeit nicht ist. Freut mich zu hören, dass das für dich funktioniert. –

Verwandte Themen