So übergeben Sie einen Zeichenfolgenwert an eine Komponente in angle2


83

Ich möchte einen Zeichenfolgenwert an eine Komponente in angle2 übergeben, dies funktioniert jedoch nicht mit der Standardbindung. Ich denke an etwas Ähnliches:

<component [inputField]="string"></component>

Leider sind nur Ausdrücke auf der rechten Seite der Zuweisung zulässig. Gibt es eine Möglichkeit, dies zu tun?

Antworten:


172

String-Literale können auf verschiedene Arten übergeben werden:

<component inputField="string"></component>
<component [inputField]="'string'"></component>
<component inputField="{{'string'}}"></component>

1
Gibt es einen Unterschied zwischen diesen? Würde Angular beispielsweise in den letzten beiden Fällen "Bindungen" erstellen oder ist es klug genug?
Alexander Abakumov

Angular ist klug genug. Nur der erste wird im DOM angezeigt.
Günter Zöchbauer

1
Vielen Dank. Ich habe ohne verschachtelte Anführungszeichen bestanden und es wurde der Wert als NaN zurückgegeben: <component [inputField]='string'></component>
Eric Soyke

Technisch würde ich die Optionen 1 und 3 nicht vorschlagen. Dies schließt buchstäblich die Attribute und Werte des Komponentenelements sowie alle Elemente innerhalb der Komponente ein, die diese Werte möglicherweise verwenden. Im Beispiel id="example-id"wird die richtige gewünschte Zeichenfolge übergeben, jetzt gibt es jedoch 2 Elemente mit demselben idAttribut. Verwenden Sie diesen Ansatz mit Bedacht ...
Mrtpain

49

Sie können eine Zeichenfolge übergeben, indem Sie die Zeichenfolge in Anführungszeichen setzen

<component [inputField]="'string'"></component>

3

Um ein einfaches Anführungszeichen (und möglicherweise andere spezielle HTML-Zeichen) in das Zeichenfolgenliteral aufzunehmen, funktioniert die erste Option, während diejenigen, die einfache Anführungszeichen zum Umschließen des Literals verwenden, mit Analysefehlern fehlschlagen. Zum Beispiel:

<component inputField="John&#39;s Value"></component>

Gibt "Johns Wert" korrekt aus.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.