Ich arbeite mit Angular 2 und habe so etwas gefunden
<input #searchBox (keyup)="search(searchBox.value)"
und es funktioniert.
Ich verstehe jedoch nicht die Bedeutung von #searchBox . Ich habe auch im Dokument nichts Klares gefunden.
Kann mir jemand erklären, wie es funktioniert?
javascript
html
angular
typescript
ackuser
quelle
quelle
#searchBox
das Element haben, können Sie essearchBox.value
im Keyup-Handler verwenden.Antworten:
Diese Syntax wird im Angular 2-Template-System verwendet, das DOM-Elemente als Variablen deklariert.
Hier gebe ich meiner Komponente eine Vorlagen-URL:
Vorlagen rendern HTML. In einer Vorlage können Sie Daten, Eigenschaftsbindung und Ereignisbindung verwenden. Dies wird mit der folgenden Syntax erreicht:
#
- variable Aussage()
- Ereignisbindung[]
- Eigentumsbindung[()]
- Zwei-Wege-Eigenschaftsbindung{{ }}
- Interpolation*
- StrukturrichtlinienDie
#
Syntax kann lokale Variablennamen deklarieren, die auf DOM-Objekte in einer Vorlage verweisen. z.Bquelle
<input #bla style="display: none;" value="Foo" /<div> {{bla.value}} </div>
. Foo wird in div angezeigt.Wenn Sie diese #searchBox festlegen, können Sie diese Eingabe in Ihrem Typescript wie erhalten
BEARBEITEN
Ein Beispiel hinzufügen : https://plnkr.co/edit/w2FVfKlWP72pzXIsfsCU?p=preview
quelle
Von angulartraining.com :
quelle
Es wird eine Vorlagenvariable erstellt, auf die verwiesen wird
input
Element, wenn das Element ein einfaches DOM-Element ist#foo="bar"
wann verwendetbar
wirdEine solche Vorlagenvariable kann in Vorlagenbindungen oder in Elementabfragen wie referenziert werden
quelle
ngModel
ist für die Formularintegration. Sie können alle anderen Arten von Bindungen ohne ausführenngModel
.ngAfterViewInit
ohne es tatsächlich zu importieren? Und umsetzen? Es ist eine eingebaute Funktion auf Plunker?