Skip to content

Commit 3121fc7

Browse files
committed
docs(pt): translate challenge 41
1 parent 1496708 commit 3121fc7

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
---
2+
title: 🟠 Control Value Accessor
3+
description: Desafio 41 é sobre criar um controle personalizado de formulário que implemente a interface Control Value Accessor.
4+
author: stanislav-gavrilov
5+
challengeNumber: 41
6+
command: forms-control-value-accessor
7+
sidebar:
8+
order: 1
9+
---
10+
11+
## Informação
12+
13+
Neste desafio, o objetivo é criar um campo personalizado de formulário que use a Form API do Angular `ControlValueAccessor`. Você pode achar a documentação [aqui](https://angular.io/api/forms/ControlValueAccessor). A interface é crucial para criar controles personalizados de formulário que interaja de forma transparente com a API dos formulários do Angular.
14+
15+
## Declaração
16+
17+
O objetivo principal é usar controle no `feedbackForm` para eliminar a necessidade de uso do `@Output` afim de recuperar o valor e injetar ele no `FormGroup`.
18+
Além disso, você é obrigado a integrar validação para o novo controle afim de assegurar que os dados de avaliação existam. (O botão de submissão do formulário deve ser desabilitado se o formulário é inválido).
19+
20+
Atualmente, a avaliação é programada desta maneira:
21+
22+
```html
23+
<app-rating-control (ratingUpdated)="rating = $event"></app-rating-control>
24+
```
25+
26+
```ts
27+
rating: string | null = null;
28+
29+
onFormSubmit(): void {
30+
this.feedBackSubmit.emit({
31+
...this.feedbackForm.value,
32+
rating: this.rating, // fora do FormGroup e sem validação
33+
});
34+
}
35+
```
36+
37+
O objetivo é incluir a avaliação no `FormGroup`
38+
39+
```html
40+
<app-rating-control [formControl]="feedbackForm.controls.rating"></app-rating-control>
41+
```

0 commit comments

Comments
 (0)