NullInjectorError: FormBuilder没有提供者

问题描述 投票:0回答:2

我需要使用FormBuilder,但程序给我一些错误。这是一个模块,我可以从其他组件导出。

模块.ts是

@NgModule({
    imports: [
        CommonModule,
        ReactiveFormsModule,
        FormsModule,
        DialogModule,
        ButtonModule,
        InputTextModule,
        TableModule,
        MessageModule

    ],
    declarations: [
        SearchCodeComponent
    ],
    exports: [
        SearchCodeComponent
    ],
    providers: []

})

export class SearchCodeModule { }

在我的html中,我是这样做的。

  <form [formGroup]="descriptionForm" (ngSubmit)="onSubmit()">
...
..
<input formControlName="code">..

在我的ts里我做了。

 descriptionForm: FormGroup

问题是,当我进入页面时,我得到了两个异常信息

ERROR NullInjectorError: R3InjectorError(AppModule)[FormBuilder -> FormBuilder -> FormBuilder]: 
  NullInjectorError: No provider for FormBuilder!

而其他是。

 ASSERTION ERROR: Reached the max number of directives [Expected=> 4 != 4 <=Actual]

有谁知道如何解决这个问题?

angular primeng angular-reactive-forms angular-formbuilder
2个回答
0
投票

看来你导入的是 ReactiveFormsModule 在你 AppModule. 从您的主设备中移除 AppModule 导入。

查看github上的这个帖子,它包含了一些其他可能解决这个问题的方法。https:/github.comangularangularissues31221#issuecomment-617474627。


0
投票

在你的TS文件中,你需要初始化你的表单组(根据NullInjectorError)。一种方法是在 ngOnInit(){} 功能。如果你有更多的项目在表格中,这给你更多的控制。

ngOnInit(){
this.descriptionForm = new FormGroup({
    code: new FormControl('')
  });
};

或者你可以在你声明的TS文件中做如下操作。descriptionForm

descriptionForm: FormGroup  = new FormGroup({
        code: new FormControl('')
      }); 

希望能帮到你:)

© www.soinside.com 2019 - 2024. All rights reserved.