2017-05-29 2 views
1

Ich habe Komponente, die etwa wie folgt aussieht:Angular 2+ - ng-Gehalt als Attributwert in der Vorlage

<text-field name=myusername>Username</text-field> 

Ich mag würde „Username“ im Platzhalter Attribut eines Eingangs zu platzieren, Art wie folgt aus:

<input name={{name}} placeholder="{{ng-content}}"> 

natürlich ist die oben nicht funktioniert, aber ich frage mich, ob es eine Möglichkeit ist, das ng-Gehalt in einem Attribute zu setzen?

hier ist mein Test Plunker: http://plnkr.co/edit/gk0Y6IQGXyk4gJz5EjV4?p=preview

Antwort

1

Nein, das wird nicht funktionieren. Der einzige Weg, um den Inhalt anzuzeigen verwendet:

<ng-content></ng-content> 

Sie versuchen, eine andere Art von @Input zu verwenden, und alles zu halten, semantisch gleiche Erhalt dieser Art von ‚Input‘ wird nicht unterstützt. Verwenden Sie einfach ein Attribut und eine @Input in Ihrer Komponente

2

Natürlich gibt es Workarounds, wie ich sie in einer Anpassung Ihrer plnkr erstellt: http://plnkr.co/edit/c7XEgIDiFchjMjzVmyBF?p=preview

<span style="display: none;" #text><ng-content></ng-content></span> 
<input name={{name}} placeholder="{{text.innerHTML}}"> 

Verwenden Sie eine versteckte Spanne den Inhalt und Verwendung enthalten das als Wert für Ihren Platzhalter.

Verwandte Themen