Estou criando um novo aplicativo usando Angular 18.
> ng version
...
Angular CLI: 18.2.12
...
É um aplicativo independente (com roteamento), sem NgModules e sem app.modules.ts
arquivo.
Quero usar Formulários Reativos.
Na minha classe de componente eu declarei
import { FormControl, FormGroup } from '@angular/forms';
e
public foobarForm = new FormGroup({
foo: new FormControl(''),
bar: new FormControl(''),
});
No meu arquivo HTML, eu tenho
<form [formGroup]="foobarForm">
<input type="text" id="foo" name="foo" formControlName="foo" placeholder="Foo" />
<input type="text" id="bar" name="bar" formControlName="bar" placeholder="Bar" />
...
</form>
Recebo os seguintes erros
Não é possível vincular a 'formGroup' porque não é uma propriedade conhecida de 'form'
e
Não é possível vincular a 'formControl' porque não é uma propriedade conhecida de 'input'.
Olhando a arte dos documentos oficiais (em https://angular.dev/guide/forms/reactive-forms ), parece que tenho que importar ReactiveFormsModule
no meu app.modules.ts
. Mas não tenho um.
Qual é a maneira correta de usar Formulários Reativos em um aplicativo independente com versão > 17?
Você também tem que importar o
ReactiveFormsModule
no array imports do componente autônomo. O módulo contém as diretivas necessárias para que os formulários reativos funcionem comoFormGroupDirective
,FormControlDirective
, que correspondem aos atributos[formGroup]
e[formControl]
no HTML.Não podemos importar essas diretivas diretamente, pois elas não são independentes.
Demonstração do Stackblitz