2017-06-16 5 views
1

Könnte mir jemand erklären, was der Unterschied zwischenUnterschiede zwischen value = "{{var}} "und [Wert] =" var" in AngularJS

ist
value="{{var}}" vs [value]="var" 

Dank.

+2

Die erste scheint ähnlich zu der Zeichenfolge Templating in eckigen, wo Var wäre der Wert, der zwischen den geschweiften Klammern ersetzt werden, die zweite scheint seltsam, höchstens könnte ich es als eine benannte Eigenschaft eines Objekts während der Deklaration sehen, jedoch ein bisschen mehr Kontext könnte Wunder tun;) – Icepickle

+1

https://angular.io/guide/template-syntax#a-new-mental-model – cartant

+1

Wenn ich die erste benutze habe ich einige Probleme in meinem Code. ngSelected funktioniert nicht richtig. Also wollte ich eine Erklärung sehen, wie beide am Backend funktionieren. Danke trotzdem –

Antwort

1

Nach https://angular.io/guide/template-syntax#a-new-mental-model

die Halterung 2 2 Typen repräsentieren verschiedene Richtungen des Datenflusses.

[target] = "Ausdruck", so wird laut als 'bind Ziel' und (Ziel) = "Erklärung" als 'auf Ziel'

bindet Ziel, bindet sie JavaScript Modell zu Ihrer Ansicht.

auf Ziel, löst ein Ereignis, bei Änderung der Ansicht, auf Ihr JavaScript-Modell.

Sie können sie kombinieren, um Bindung Ziel zu erstellen, die beides tut.

https://angular.io/guide/template-syntax#property-binding-or-interpolation

value = "{{var}}" ist eine Bindung interpoliert. Es kann auf die gleiche Weise verwendet werden wie [attr.value] = "var"

Mit diesen kleinen Unterschieden.

value = "{{var}}" oder Verwendung von {{}} innerhalb des Inhalts von HTML-Knoten, funktioniert nur mit Strings. Die Tatsache, dass {{}} in angular vorhanden ist, bedeutet, dass sie mehr Verarbeitungsschablonen bearbeiten müssen, aber da diese Arbeit bereits versenkt ist, können Sie {{}} dort verwenden, wo es mehr Sinn macht und die Lesbarkeit verbessert ohne viel Leistung.

Wenn Sie eine Bindung an eine Nicht-String-Eigenschaft benötigen, müssen Sie stattdessen die Eigenschaftsbindungssyntax verwenden.

Ich würde empfehlen, sich an die Eigenschaft bindende Syntax [value] = "var" zu halten, da es Ihnen ermöglicht, die 2 verschiedenen direktionalen Bindungen ohne zu viel geistigen Aufwand zu verwenden.

+0

Danke. Ich hatte Schwierigkeiten mit value = "{{var}}" .. –

+0

Sorry über die Vielzahl von Änderungen. Mein Winkel ist ein wenig eingerostet, also habe ich Informationen überprüft, als ich ging. –

Verwandte Themen