Je travaille avec angular 2 et j'ai trouvé quelque chose comme
<input #searchBox (keyup)="search(searchBox.value)"
et il fonctionne.
Cependant, je ne comprends pas la signification de #searchBox . Je n'ai rien trouvé de clair non plus dans la doc.
Quelqu'un pourrait-il m'expliquer comment cela fonctionne?
javascript
html
angular
typescript
ackuser
la source
la source
#searchBox
sur l'élément est ce qui vous permet d'utilisersearchBox.value
dans le gestionnaire de keyup.Réponses:
C'est la syntaxe utilisée dans le système de modèles Angular 2 qui déclare les éléments DOM comme des variables.
Ici, je donne à mon composant une URL de modèle:
Les modèles rendent le HTML. Dans un modèle, vous pouvez utiliser des données, une liaison de propriété et une liaison d'événement. Ceci est accompli avec la syntaxe suivante:
#
- déclaration de variable()
- liaison d'événement[]
- liaison de propriété[()]
- liaison de propriété bidirectionnelle{{ }}
- interpolation*
- directives structurellesLa
#
syntaxe peut déclarer des noms de variables locales qui font référence aux objets DOM dans un modèle. par exemplela source
<input #bla style="display: none;" value="Foo" /<div> {{bla.value}} </div>
. Foo est affiché en div.Lorsque vous définissez cette #searchBox, vous pouvez obtenir cette entrée sur votre TypeScript comme
ÉDITER
Ajout d'un exemple: https://plnkr.co/edit/w2FVfKlWP72pzXIsfsCU?p=preview
la source
De angulartraining.com :
la source
Il crée une variable de modèle qui référence
input
élément si l'élément est un élément DOM simple#foo="bar"
quandbar
estUne telle variable de modèle peut être référencée dans des liaisons de modèle ou dans des requêtes d'élément comme
la source
ngModel
est pour l'intégration des formulaires. Vous pouvez effectuer tous les autres types de liaisons sansngModel
.ngAfterViewInit
sans l'importer? Et la mise en œuvre? C'est une fonctionnalité intégrée sur plunker?