Gegevensbinding verbindt de klasse van een component met zijn template. Angular heeft vier vormen, onderscheiden door de richting van de gegevensstroom en hun karakteristieke syntaxis.
1. Interpolation — klasse → weergave (tekst)
<h1>{{ title }}</h1> <!-- display a property as text -->
<p>{{ price * quantity }}</p> <!-- any expression -->
2. Property binding — klasse → weergave (attribuut/eigenschap)
<img [src]="imageUrl" /> <!-- bind a DOM property -->
<button [disabled]="isLoading">Save</button>
<app-child [user]="currentUser"></app-child> <!-- pass to a component @Input -->
Vierkante haakjes [ ] binden een eigenschap aan een expressie (eenrichtings, gegevens stromen omlaag in de weergave).
3. Event binding — weergave → klasse
<button (click)="save()">Save</button> <!-- DOM event → method -->
<input (input)="onInput($event)" /> <!-- $event = the event object -->
<app-child (deleted)="onDeleted($event)"></app-child> <!-- component @Output -->
Haakjes ( ) luisteren naar gebeurtenissen (eenrichtings, gegevens stromen omhoog van de weergave naar de klasse).
4. Tweerichtingsbinding — beide richtingen
<input [(ngModel)]="name" /> <!-- the "banana in a box" [()] -->
<p>{{ name }}</p> <!-- stays in sync as you type -->
De [(...)] syntaxis ("banaan in een doos") combineert property + event binding voor tweerichtingssynchronisatie — meestal met ngModel op formulierinvoer.
De syntaxis onthouden
{{ }} → interpolation (class → view, text)
[ ] → property (class → view)
( ) → event (view → class)
[( )] → two-way (both) — it's literally [ ] + ( )
De tweerichtings [()] is gewoon property binding [] plus event binding () gecombineerd — de haakjes tonen de richtingen.
Waarom het belangrijk is
Gegevensbinding is hoe Angular de klasse en template gesynchroniseerd houdt — het is het mechanisme achter elke dynamische UI.
Het kennen van de vier typen en hun syntaxis ({{}}, [], (), [()]) en welke richting elk stroomt is essentieel voor het lezen en schrijven van elke Angular-template; bijna elke regel van een Angular-template gebruikt een van deze.
