← Back to Articles         
What is data binding in Angular?

What is data binding in Angular?

Published on 29 Sep 2026     5 min read Angular
Data Binding

1. What is Data Binding in Angular?

What is Data Binding?

Data binding in Angular is the mechanism used to connect the component class (TypeScript) with the template (HTML).

It allows Angular to transfer data between the application's component logic and the user interface.

In simple terms:

Data Binding = Communication between TypeScript and HTML

For example, if a component contains:

userName = 'Syed';

Angular can display that value in HTML:

<h2>{{ userName }}</h2>

Output:

Syed

Why Do We Need Data Binding?

Without data binding, developers would have to manually find HTML elements and update their values whenever application data changes.

Angular data binding makes this automatic.

For example, when:

  • Data changes in the component → Angular can update the UI.
  • A user clicks a button → Angular can call a component method.
  • A user enters data → Angular can update the component property.
  • A component property changes → Angular can update an element property.

Therefore, data binding keeps the component and UI connected.


Purpose of Data Binding

The main purposes are:

  • Display component data in HTML.
  • Set HTML element properties dynamically.
  • Respond to user events.
  • Transfer user input to the component.
  • Synchronize data between component and template.
  • Reduce manual DOM manipulation.

2. What Are the Different Types of Data Binding?

Angular mainly provides four types of data binding:

Type Syntax Direction Purpose
Interpolation {{ value }} Component → View Display values
Property Binding [property]="value" Component → View Set element/component properties
Event Binding (event)="method()" View → Component Handle events
Two-Way Binding [(ngModel)]="value" Component ↔ View Synchronize both sides

1. Interpolation

Interpolation is used to display component data inside the HTML template.

TypeScript

userName = 'Syed';

HTML

<h2>Welcome {{ userName }}</h2>

Data Flow

Component
   |
   | userName
   ↓
Template

Direction: Component → View

Interpolation is commonly used for displaying text and expressions.


2. Property Binding

Property binding is used to bind a component value to a property of an HTML element, directive, or child component.

TypeScript

imageUrl = 'assets/logo.png';
isDisabled = true;

HTML

<img [src]="imageUrl">

<button [disabled]="isDisabled">
    Save
</button>

Here:

imageUrl
   ↓
src property

and:

isDisabled
   ↓
disabled property

Direction: Component → View


3. Event Binding

Event binding is used to send information or actions from the template to the component.

It is commonly used for events such as:

  • click
  • change
  • input
  • keyup
  • keydown
  • submit

Example:

HTML

<button (click)="save()">
    Save
</button>

TypeScript

save() {
    console.log('Saved');
}

When the user clicks the button:

User Click
    ↓
Template
    ↓
Component
    ↓
save()

Direction: View → Component


4. Two-Way Data Binding

Two-way binding allows data to flow from the component to the view and from the view back to the component.

It commonly uses:

[(ngModel)]

Example:

TypeScript

userName = 'Syed';

HTML

<input [(ngModel)]="userName">

<p>{{ userName }}</p>

Initially:

Component
userName = "Syed"
       ↓
Input displays "Syed"

If the user changes the input to:

Mohamed

Angular updates:

userName = 'Mohamed';

So the flow is:

Component  ↔  View

Direction: Component ↔ View


Why Do We Need Different Types?

Different UI operations require different directions of communication.

For displaying information:

Component → View

Use:

Interpolation
Property Binding

For handling user actions:

View → Component

Use:

Event Binding

For synchronizing values:

Component ↔ View

Use:

Two-Way Binding

Advantages

1. Less Manual DOM Manipulation

You don't normally need code such as:

document.getElementById(...)

Angular handles the connection between component state and the template.

2. Cleaner Code

UI and component logic can communicate using simple declarative syntax.

3. Automatic UI Updates

When relevant component state changes, Angular can update the corresponding rendered value.

4. Easy Event Handling

User events can directly invoke component methods:

<button (click)="save()">Save</button>

5. Easy Form Handling

Two-way binding can simplify basic form input synchronization.


Disadvantages

1. Excessive Two-Way Binding Can Make Data Flow Harder to Follow

When many values can change from both directions, understanding where a change originated can become more difficult.

2. Complex Template Expressions Reduce Readability

Avoid putting complicated logic directly inside templates.

Instead of complex expressions, prefer moving business logic into the component or appropriate application logic.

3. Performance Considerations

A very large application with many bindings and expensive template computations can require careful performance optimization.

4. ngModel Requires Forms Support

For standalone Angular components, FormsModule must be imported when using ngModel.


Key Points

  • Data binding connects the component and template.
  • Angular primarily uses four binding forms.
  • {{ }} → Interpolation
  • [ ] → Property Binding
  • ( ) → Event Binding
  • [()] → Two-Way Binding
  • Interpolation and property binding are Component → View.
  • Event binding is View → Component.
  • Two-way binding is Component ↔ View.
  • [(ngModel)] is a common example of two-way binding.
  • Angular data binding reduces the need for direct DOM manipulation.

A useful way to remember the syntax:

{{ }}   → Display
[ ]     → Property
( )     → Event
[()]    → Two-Way

[()] is sometimes informally called "banana in a box" syntax.


Interview Questions and Answers

Q1. What is data binding in Angular?

Answer:
Data binding is the mechanism Angular uses to connect a component's TypeScript data and behavior with its HTML template.


Q2. What are the main types of data binding in Angular?

Answer:

Angular mainly provides:

  1. Interpolation
  2. Property Binding
  3. Event Binding
  4. Two-Way Binding

Q3. What is the difference between interpolation and property binding?

Answer:

Interpolation is commonly used to render values as text:

<h1>{{ title }}</h1>

Property binding sets a DOM, directive, or component property:

<img [src]="imageUrl">

Both primarily transfer data from Component → View.


Q4. What is event binding?

Answer:

Event binding allows the template to respond to events and execute component logic.

<button (click)="save()">Save</button>

The direction is:

View → Component

Q5. What is two-way data binding?

Answer:

Two-way binding synchronizes data between the component and view in both directions.

<input [(ngModel)]="userName">

Direction:

Component ↔ View

Q6. What does [()] mean in Angular?

Answer:

[()] represents two-way binding.

[(ngModel)]="userName"

It combines the conceptual behavior of:

[ ]  Property Binding
 +
( )  Event Binding

It is commonly called banana-in-a-box syntax.

← Back to Articles