En este post te mostraré cómo ligar un input con una variable de Angular, de manera que si la variable cambia en el input, se cambie en los demás lugares.
Y de manera similar, si la variable cambia desde otro lugar se refresque en el input. Todo esto será con Angular y con el two way binding.
Por cierto, esto que te enseñaré será muy simple por si solo necesitas un input. En caso de que quieras algo más avanzado mira los formularios con Angular.
Importando FormsModule
Aunque solo vayamos a ligar un input
a una variable, necesitamos importar FormsModule. Para ello en app.module.ts
importa FormsModule
:
import { FormsModule } from '@angular/forms';
Y después inclúyelo en los imports:
imports: [
BrowserModule,
FormsModule,
],
Solo como ejemplo, te dejo mi archivo completo:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { FormsModule } from '@angular/forms';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
Input con variable en Angular
En nuestra plantilla vamos a tener un input y colocaremos el two-way-binding con [(ngModel)]
.
Adicional a ello tendremos un botón que cambiará la variable desde otro lugar para demostrar que realmente se está ligando el input en Angular a una variable:
El nombre es: {{nombre}}
<br>
<input type="text" [(ngModel)]="nombre">
<br>
<button (click)="modificarValor()">Cambiar nombre a 'Otro nombre'</button>
Y luego en el código TypeScript tenemos lo siguiente:
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
nombre = "Luis"
modificarValor() {
this.nombre = "Otro nombre"
}
}
Fíjate que estoy definiendo la propiedad en la línea 9, misma que estoy mostrando en el HTML en la línea 1.
Después de eso en el clic del botón se va a invocar a la función modificarValor
que va a cambiar la propiedad, y cuando esto pase se va a cambiar también dentro del input.
Todo esto con Angular y TypeScript.
Poniendo todo junto
El código completo ya te lo dejé en este post, pero igual lo dejo en un editor en línea en caso de ser necesario.
Aquí arriba solo puedes ver la demostración en un Gif. Por cierto, recuerda que al inicio ya te dejé un enlace para los formularios con Angular.
En mi blog tengo más proyectos y tutoriales con Angular, te invito a darles una lectura.