Detectando Mudanças no Valor de um Input em Angular
Neste artigo você aprenderá a identificar mudanças no valor de um Input em Angular, uma ação importante ao lidar com formulários

Fala programador(a), beleza? Bora aprender mais sobre Angular!
Ao construir aplicações web interativas, frequentemente nos deparamos com a necessidade de responder a alterações nos campos de input.
No Angular, uma das mais populares frameworks frontend, existem várias formas de detectar e responder a essas mudanças.
Neste artigo, exploraremos essas diferentes abordagens e suas melhores práticas.
O Evento (input)
Introdução ao Event Binding
O Angular fornece uma sintaxe fácil e intuitiva para vincular eventos DOM a métodos do componente.
O evento input é disparado toda vez que o valor de um campo de input muda.
Exemplo Prático
import { Component } from '@angular/core';
@Component({
selector: 'app-detect-input',
template: `
<input (input)="detectChange($event)" placeholder="Digite algo">
`
})
export class DetectInputComponent {
detectChange(event: any) {
console.log(event.target.value);
}
}
Neste exemplo, sempre que o valor do input muda, a função detectChange é chamada, e o novo valor é exibido no console.
A Diretiva ngModel
Vinculação Bidirecional com ngModel
Enquanto o evento (input) nos permite detectar mudanças no valor de um input, o Angular também fornece a diretiva ngModel para realizar a vinculação bidirecional entre o valor do input e uma propriedade do componente.
Exemplo com ngModel
Primeiro, é importante lembrar de importar o FormsModule no módulo de seu componente.
import { Component } from '@angular/core';
@Component({
selector: 'app-detect-input-ngmodel',
template: `
<input [(ngModel)]="texto" (ngModelChange)="detectChange()">
`
})
export class DetectInputNgModelComponent {
texto: string;
detectChange() {
console.log(this.texto);
}
}
Com essa abordagem, o valor do input é sincronizado com a propriedade texto do componente, e toda vez que esse valor muda, a função detectChange é chamada.
Usando FormControl e valueChanges
Para uma abordagem mais reativa e quando estamos trabalhando com formulários reativos no Angular, podemos usar o FormControl juntamente com a propriedade valueChanges.
Exemplo com Formulário Reativo
Primeiro, você precisa importar o ReactiveFormsModule.
import { Component, OnInit } from '@angular/core';
import { FormControl } from '@angular/forms';
@Component({
selector: 'app-detect-input-reactive',
template: `
<input [formControl]="meuInput">
`
})
export class DetectInputReactiveComponent implements OnInit {
meuInput = new FormControl('');
ngOnInit() {
this.meuInput.valueChanges.subscribe(valor => {
console.log(valor);
});
}
}
Com essa abordagem, toda vez que o valor do input muda, a nova entrada é logada no console, graças ao observável valueChanges.
Quer aprender mais sobre programação? Conheça nosso canal no YouTube:
Conclusão
Detectar mudanças no valor de um input é uma tarefa comum ao desenvolver aplicações interativas.
O Angular oferece várias maneiras de realizar isso, desde a vinculação direta de eventos, até abordagens mais reativas com formulários reativos.
Escolher a abordagem correta depende das necessidades específicas de sua aplicação e de sua familiaridade com os conceitos do Angular.
Independentemente da abordagem escolhida, o Angular oferece as ferramentas necessárias para construir aplicações robustas e reativas.
Está buscando evoluir como Programador? Confira o nossos cursos de programação.
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 473 aulas
- 20 projetos
- 39h 26min
Blog | Mais populares

As diferenças de var, let e const

Checklist de segurança n8n VPS pública: guia essencial para proteger sua instalação
Checklist de segurança n8n VPS pública: guia essencial para proteger sua instalação A popularidade da automação de processos com o n8n está em alta, principalmente […]

Como fazer redirecionamento com PHP
Neste artigo você vai aprender a como fazer redirecionamento com PHP, utilizaremos abordagens fáceis de entender e de aplicar Fala programador(a), beleza? Bora aprender mais […]
