Pular para o conteúdo principal

Questão de TI - Desenvolvimento de Sistemas — AngularJS — FCC 2026

TI - Desenvolvimento de SistemasAngularJS
Código
fc142332
Banca
FCC
Órgão
ARTESP
Ano
2026
Cargo
Esp RT ( )

Uma empresa de transporte rodoviário interestadual está desenvolvendo em Angular um formulário complexo para emissão de bilhetes e despacho de cargas, que deve permitir adicionar e remover dinamicamente trechos de viagem, alterar regras de validação conforme o tipo de carga, integrar-se com serviços de backend que fornecem o modelo da viagem e aplicar validações síncronas e assíncronas. A solução atual, baseada em template-driven forms com ngModel, tornou o HTML difícil de manter, com validações espalhadas pelo template.


Nesse cenário, a abordagem mais adequada é

  1. Aenvolver o formulário em um componente pai com ChangeDetectionStrategy.OnPush, contando que isso substitua a necessidade de um modelo de formulário estruturado e simplifique as validações.
  2. Bremover as regras de validação do frontend e delegar toda validação ao backend, retornando mensagens de erro via HTTP apenas após o envio dos dados.
  3. Cmanter o formulário como template-driven, mas concentrar todas as validações em atributos HTML nativos (required, pattern), evitando qualquer lógica de validação em TypeScript.
  4. Dabandonar os módulos de formulários do Angular e manipular diretamente o DOM com document.getElementById, usando event listeners nativos para tratar todas as validações.
  5. Emigrar o formulário para Reactive Forms, definindo o modelo com FormGroup, FormControl e FormArray no componente, usando valueChanges e validadores síncronos e assíncronos, mantendo a lógica de validação e a estrutura do formulário em TypeScript.
Revelar gabarito e comentário

GabaritoE — migrar o formulário para Reactive Forms, definindo o modelo com FormGroup, FormControl e FormArray no componente, usando valueChanges e validadores síncronos e assíncronos, mantendo a lógica de validação e a estrutura do formulário em TypeScript.

Link permanente: /questoes/fc142332