2016-07-21 9 views
0

Ich lerne angle2 haben Frage über ngStyle. Betrachten Sie folgenden Code:Warum nicht ein Ausdruck

<div> 
    <span [ngStyle]="{color: 'red'}" [style.font-size.px]="fontSize"> 
    red text 
    </span> 
</div> 

Warum [style.font-size.px]="fontSize" ist nicht {{}} brauchen? Wie:

<div> 
    <span [ngStyle]="{color: 'red'}" [style.font-size.px]="{{fontSize}}"> 
    red text 
    </span> 
</div> 

Antwort

3

Sowohl Interpolation ({{…}}) und Bindung ([…], (…), [(…)]) verwenden, um die "template Ausdruck" Syntax.

Wenn Sie einen literalen Wert für eine wollte Bindung Sie sollten * tun

[foo]="'strValue'" 

IOW: Ausdrücke Bindung bereits erfordern "Template Ausdrücke"

Werfen Sie einen Blick auf https://angular.io/docs/ts/latest/guide/template-syntax.html

*) Lesen Sie Günters Kommentar unter

+2

Einige halten es für eine schlechte Übung, aber 'foo =" strValue "' würde auch funktionieren. Ich würde auch hinzufügen, dass '{}' in 'ngStyle' nicht mit' {{}} 'zusammenhängt. Die erste ist die Syntax des Objekts, die zweite ist die String-Wert-Bindesyntax Angular2. –

+0

Sie haben Recht. Ich wünschte, das könnte deaktiviert werden, da es mir schon viele Kopfschmerzen mit Tippfehlern bereitet hat (aktualisiert den Beitrag, um auf deinen (wichtigen) Kommentar zu verweisen. –

Verwandte Themen