Come passare un valore stringa a un componente in angular2


86

Vorrei passare un valore di stringa a un componente in angular2, ma non funziona con l'associazione predefinita. Sto pensando a qualcosa di simile a questo:

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

Sfortunatamente, solo le espressioni sono consentite sul lato destro del compito. C'è un modo per fare questo?

Risposte:


175

I valori letterali stringa possono essere passati in diversi modi:

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

1
C'è qualche differenza tra quelli? Ad esempio, Angular creerebbe "associazioni" negli ultimi due casi o è abbastanza intelligente?
Alexander Abakumov

Angular è abbastanza intelligente. Solo il primo sarà visibile nel DOM.
Günter Zöchbauer

1
Grazie. Stavo passando senza virgolette annidate e restituiva il valore come NaN: <component [inputField]='string'></component>
Eric Soyke

Tecnicamente, non suggerirei le opzioni 1 e 3. Ciò includerà letteralmente quegli attributi e valori sull'elemento componente così come tutti gli elementi all'interno del componente che potrebbero utilizzare quei valori. Nell'esempio id="example-id"passerà la stringa corretta desiderata, tuttavia ora ci saranno 2 elementi con lo stesso idattributo. Usa questo approccio con saggezza ...
mrtpain

50

Puoi passare una stringa racchiudendola tra virgolette

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

3

Per includere una singola virgoletta (e possibilmente altri caratteri HTML speciali) nella stringa letterale, la prima opzione funziona mentre quelle che utilizzano virgolette singole per racchiudere il letterale falliscono con errori di analisi. Per esempio:

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

Produrrà correttamente "John's Value".

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.