Code Premix

Angular Data Binding: One-Way and Two-Way Data Binding

๐Ÿ“…March 11, 2023
๐Ÿ—Angular

Angular is a popular front-end development framework that allows developers to build dynamic and interactive web applications. One of the most powerful features of Angular is its data binding system, which allows data to flow between components and templates in real-time. In this article, we will take a closer look at Angular data binding, including one-way and two-way data binding, and provide examples of how to use them in your Angular applications.

What is Data Binding in Angular?

Data binding is the process of connecting data sources to a template. In Angular, data binding enables you to bind a property of a component to an element in the template. When the data in the component property changes, the value of the bound element in the template is updated automatically. There are two types of data binding in Angular: one-way data binding and two-way data binding.

One-Way Data Binding

One-way data binding is a unidirectional binding where the data flows only in one direction, from the component to the template. This means that when the value of a component property changes, it will automatically update the value of the element in the template to which it is bound. However, if the value of the element in the template changes, it will not affect the value of the component property.

There are two types of one-way data binding in Angular:

  1. Interpolation Binding Interpolation binding is a type of one-way data binding that allows you to output a string that combines plain text with the value of a component property. It is represented by the double curly braces {{ }} in the template. For example:
<p>Welcome {{username}}!</p>

In this example, the value of the username property of the component is displayed in the template.

  1. Property Binding Property binding is a type of one-way data binding that allows you to set the value of an element property to the value of a component property. It is represented by square brackets [] in the template. For example:
<img [src]="imagePath">

In this example, the value of the imagePath property of the component is bound to the src attribute of the img element.

Two-Way Data Binding

Two-way data binding is a bidirectional binding where the data flows in both directions, from the component to the template and from the template to the component. This means that when the value of a component property changes, it will automatically update the value of the element in the template to which it is bound. Similarly, if the value of the element in the template changes, it will also update the value of the component property.

Two-way data binding is implemented using the ngModel directive, which is part of the FormsModule. The ngModel directive creates a two-way binding between a form control and a component property. For example:

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

In this example, the value of the username property of the component is bound to the value of the input element. Any changes made to the input element will automatically update the value of the username property of the component, and vice versa.

Conclusion

In this article, we have discussed the two types of data binding in Angular: one-way data binding and two-way data binding. One-way data binding is a unidirectional binding where the data flows only in one direction, from the component to the template. Two-way data binding is a bidirectional binding where the data flows in both directions, from the component to the template and from the template to the component. Understanding the differences between one-way and two-way data binding is crucial to building dynamic and responsive web applications with Angular.