Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Outra forma de implementar

Boa tarde durante o curso implementamos o ControlValueAccessor, registrando ele com NG_VALUE_ACCESSOR

  providers: [
    {
      provide: NG_VALUE_ACCESSOR,
      multi: true,
      useExisting: forwardRef(() => TodoInputComponent)
    }
  ]

Porém vi em outro curso implementando o registro com injeção de dependência do ngControl

  constructor(
    @Optional() @Self() ngControl: NgControl
  ) {
    ngControl.valueAccessor = this;
  }

Fiz um teste acredito que simplista e não senti diferença, alguém manja se existe diferença ou alguma forma é mais recomendada pela comunidade ?

1 resposta
solução!

Oi Felipe, tudo bem?

Desculpe a demora em retornar.

Ambas as formas que você mencionou são válidas e recomendadas pela comunidade. A diferença entre elas é que a primeira forma, utilizando o NG_VALUE_ACCESSOR, é mais genérica e pode ser utilizada em qualquer componente, enquanto a segunda forma, utilizando a injeção de dependência do ngControl, é mais específica para componentes que utilizam formulários.

No entanto, é importante ressaltar que a escolha entre as duas formas deve ser feita com base nas necessidades do seu projeto e no contexto em que o componente será utilizado. Se o seu componente for utilizado em um formulário, a segunda forma pode ser mais adequada, enquanto que se ele for utilizado em outras situações, a primeira forma pode ser mais apropriada.

Espero ter ajudado.

Um abraço e bons estudos.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software