Enlace de datos bidireccional en Angular 2 (two-way)

Hoy aprenderemos a utilizar el Enlace de datos bidireccional en Angular 2, también conocido como Two-way Data Bindind.

En Angular 2 tenemos varios tipos de enlace de datos o binding, por ejemplo, el binding por interpolación que simplemente nos permitía mostrar el valor de las propiedades de la clase de nuestro componente en la plantilla, muy simple, solamente le pasamos un dato del componente a la plantilla.

El two-way data binding en Angular 2 nos permite modificar el valor de una propiedad de forma bidireccional, de forma que cuando nosotros modificamos el valor de una propiedad en la vista el valor también se actualiza en el modelo de datos. Resumiendo cambiamos el valor de una propiedad con una caja de texto en la vista, ese valor se cambia en la vista y también en el componente.

Como vamos a crear inputs de formulario, tenemos que importar y cargar el modulo de formularios de Angular 2 en el app.module.ts

import { NgModule }       from '@angular/core';
import { BrowserModule }  from '@angular/platform-browser';

// Importar FormsModule
import { FormsModule } from '@angular/forms';

import { AppComponent } from './app.component';

// Cargamos el modulos dentro de un array en el atributo imports
@NgModule({
  imports: [
    BrowserModule,
    FormsModule
  ],
  declarations: [
    AppComponent
  ],
  providers: [
    appRoutingProviders
  ],
  bootstrap: [ AppComponent ]
})
export class AppModule {
}

Ahora ya podemos probar el enlace de datos bidireccional en Angular 2, veamos un ejemplo de esto en código:

// Importar el núcleo de Angular
import {Component} from '@angular/core';
 
// Decorador component, indicamos en que etiqueta se va a cargar la plantilla
@Component({
    selector: 'my-app',
    template: `<h2>Two-way data bindind Angular 2</h2>
		<p>
			Cambiar titulo:
           <!--Usamos la directiva ngModel para el two-way data binding-->
			<input type="text" [(ngModel)] = "pelicula.titulo" />
		</p>
           <!--Mostramos el valor de la propiedad-->
		<p>Mostrar titulo: {{pelicula.titulo}}</p>
	`
})
 
// Clase del componente donde irán los datos y funcionalidades
export class AppComponent { 
	// Propiedad
	public pelicula;
	
	constructor(){
           // Asignamos un valor a la propiedad
		this.pelicula = {id: 1, titulo: "La verdad duele", anio: 2016};
	}

}

El resultado por pantalla es este:
two-way data binding en angular 2

Hemos cambiado el titulo de la película y ahora podemos utilizar el nuevo valor de la propiedad como más nos convenga.

Con esto ya sabemos usar lo básico del binding bidireccional en Angular 2 (Two-way data binding).

Víctor Robles WEB

Autor: Victor

Desarrollador web - Formador online - Blogger

Compartir este post