【问题标题】:Unexpected value 'FormBuilder' imported by the module 'AppModule'. Please add a @NgModule annotation模块“AppModule”导入的意外值“FormBuilder”。请添加@NgModule 注释
【发布时间】:2019-12-01 01:04:58
【问题描述】:

如何在app.module中添加formbulder

模块 AppModule 导入的非预期值 FormBuilder。请添加@NgModule 注解。

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { HttpClientModule, HTTP_INTERCEPTORS } from "@angular/common/http";
import {FormBuilder, FormControl, FormGroup, Validators, FormsModule} from '@angular/forms';

    import { AppRoutingModule } from './app-routing.module';
    import { AppComponent } from './app.component';
    import { ClientComponent } from './client/client.component';
    import { ClientTaskComponent } from './clienttask/clienttask.component';
    import { ClientService } from './client/sherad/client.service';


    @NgModule({
      declarations: [
        AppComponent, ClientComponent, ClientTaskComponent, ClientService
      ],
      imports: [
        BrowserModule,
        AppRoutingModule,
        HttpClientModule,
        FormsModule,
        FormBuilder,
        FormGroup,
        FormControl
      ],
      providers: [],
      bootstrap: [AppComponent]
    })
    export class AppModule { }

【问题讨论】:

  • FormBuilder 不需要在模块中导入。您应该在模块中导入ReactiveFormsModule,并在组件中注入FormBuilder

标签: javascript angular typescript ecmascript-6 single-page-application


【解决方案1】:

在我的代码中运行的真实而简单的解决方案。只需在该特定模块中评论这两个导入,即在我的代码 HomeModule.ts 评论这些 //表单模块, //表单控件

【讨论】:

    【解决方案2】:
    import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { HttpClientModule, HTTP_INTERCEPTORS } from "@angular/common/http"; import {FormBuilder, FormControl, FormGroup, Validators, FormsModule} from '@angular/forms'; ........................///Remove this
    
    import { FormsModule, ReactiveFormsModule } from "@angular/forms";..........//Add this
    
    import { AppRoutingModule } from './app-routing.module';
    import { AppComponent } from './app.component';
    import { ClientComponent } from './client/client.component';
    import { ClientTaskComponent } from './clienttask/clienttask.component';
    import { ClientService } from './client/sherad/client.service';
    
    
    @NgModule({
      declarations: [
        AppComponent, ClientComponent, ClientTaskComponent, ClientService
      ],
      imports: [
        BrowserModule,
        AppRoutingModule,
        HttpClientModule,
        FormsModule,
        FormBuilder,.........///Remove this
        FormGroup,...........///Remove this
        FormControl..........///Remove this
        ReactiveFormsModule ..........//Add this
    ], 
    providers: [], 
    bootstrap: [AppComponent] 
    }) 
    
    export class AppModule { }
    

    并将其导入您的 .ts

    import {FormBuilder, FormControl, FormGroup, Validators, FormsModule} from '@angular/forms';
    

    永远记住

    @NgModule
    (
    

    声明仅包含组件

    imports 仅包含 模块

    providers 仅包含服务

    【讨论】:

      【解决方案3】:

      您不能将 FormBuilder 添加到您的模块中,您只能将这些添加到您的模块中

      import { FormsModule, ReactiveFormsModule } from "@angular/forms";
      
      imports: [
          BrowserModule,
          AppRoutingModule,
          HttpClientModule,
          FormsModule,
          ReactiveFormsModule
        ],
      

      【讨论】:

        【解决方案4】:

        imports 数组只接受 Angular 模块。

        代替

        import {FormBuilder, FormControl, FormGroup, Validators, FormsModule} from '@angular/forms';
        

        只需导入:

        import {ReactiveFormsModule} from '@angular/forms';
        

        ReactiveFormsModuleFormBuilderFormControlFormGroupValidators 等暴露的模块。因此,要使用它们,您必须在 Angular 模块中导入 ReactiveFormsModule

        并添加 imports 数组。

        @NgModule({
          declarations: [
            AppComponent, ClientComponent, ClientTaskComponent, ClientService
          ],
          imports: [
            BrowserModule,
            AppRoutingModule,
            HttpClientModule,
            FormsModule,
            ReactiveFormsModule,
          ],
          providers: [],
          bootstrap: [AppComponent]
        })
        export class AppModule {}
        

        FormBuilderFormControlFormGroupValidators 等只能在组件/服务中导入并在那里使用。 Angular 模块文件中并不真正需要它们。

        【讨论】:

          猜你喜欢
          • 2018-01-10
          • 2021-09-02
          • 2020-04-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多