Escolar Documentos
Profissional Documentos
Cultura Documentos
Conteúdo
Conteúdo
4 Databinding
Databinding
De forma simplificada, databinding significa comunicação, comunicação entre o template
(HTML) e o código TypeScript (lógica de negócio).
Bom, é possível que você tenha no seu código TypeScript algum dado que você obteve do
servidor, ou algum cálculo que você queira mostrar para o usuário, e a única coisa que o usuário
vê é o template HTML, então precisamos de alguma forma fazer com que eles dois se
comuniquem para que possamos de fato fazer algo na aplicação. Ficou claro?
Nós temos diferentes formas de realizar a comunicação entre o template HTML e o código
TypeScript:
Podemos ter dados fluindo do código TypeScript para o template HTML. Para isso,
podemos utilizar interpolação de string ou property binding (binding de propriedade).
Podemos também ter dados fluindo do template HTML para o código TypeScript. Por
exemplo, reagir ao evento de clique em um botão. Para isso, utilizamos Event Binding
(binding de eventos).
Também temos outra forma de databinding, que é quando combinamos as duas formas
acima, o two-way-binding.
Interpolação de string
@Component({
selector: 'app-my-first-component',
templateUrl: './my-first-component.component.html',
})
export class MyFirstComponent {
name: string = 'Fulano de Tal';
https://class.letscode.com.br/apps/academy/courses/977326ae-d78b-4f19-a54b-7f268eecf2dd/122fa596-0ed8-4812-aed8-cd6fc870cb7c/f303699… 1/4
07/06/2023, 14:46 Class Let's Code
greeting(): string {
return `Olá, seja bem-vindo, ${this.name}!`;
}
}
Qualquer valor no componente que se resolva como uma string pode ser exibido utilizando
interpolação de string, até uma função, caso ela retorne um string. Veja o exemplo:
No browser, desta vez, iremos visualizar o texto: Olá, seja bem-vindo, Fulano de Tal!
@Component({
selector: 'app-my-first-component',
templateUrl: './my-first-component.component.html',
})
export class MyFirstComponent {
enableButton = true;
}
<button [disabled]="!enableButton"></button>
O evento click se refere ao clique do mouse. Quando o botão for clicado, será executada a
função onClickButton() .
Quando queremos ter acesso no nosso código TypeScript aos dados emitidos com determinado
evento, utilizamos $event , conforme exemplo a seguir:
O $event irá conter os dados emitidos com aquele evento e um desses dados é o texto escrito
no input , por exemplo.
Two-Way-Binding
No último exemplo, utilizamos o evento input para passar os dados do evento para o
componente. E se pudéssemos também, ao mesmo tempo, atualizar o valor exibido no elemento
input conforme determinado valor no componente muda? Podemos fazer isso utilizando o
[(ngModel)] , conforme exemplo a seguir:
Vale salientar que, para que o ngModel funcione, é preciso importar o FormsModule no
app.module . Veremos com mais detalhes essa implementação posteriormente, no capítulo
referente a Formulários.
https://class.letscode.com.br/apps/academy/courses/977326ae-d78b-4f19-a54b-7f268eecf2dd/122fa596-0ed8-4812-aed8-cd6fc870cb7c/f303699… 3/4
07/06/2023, 14:46 Class Let's Code
https://class.letscode.com.br/apps/academy/courses/977326ae-d78b-4f19-a54b-7f268eecf2dd/122fa596-0ed8-4812-aed8-cd6fc870cb7c/f303699… 4/4