ค้นหาเว็บไซต์

javascript - ค่า 'FormBuilder' ที่นำเข้าโดยโมดูล 'AppModule' ไม่คาดคิด กรุณาเพิ่มคำอธิบาย @NgModule


วิธีเพิ่ม FormBuilder ใน app.module

ค่าที่ไม่คาดคิด FormBuilder ถูกนำเข้าโดยโมดูล AppModule กรุณาเพิ่มคำอธิบาย @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 { }

คำตอบ #1

อาร์เรย์ imports รับเฉพาะโมดูลของ Angular เท่านั้น

แทนที่จะ

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

เพียงแค่ import:

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

ReactiveFormsModule เป็นโมดูลที่ FormBuilder, FormControl, FormGroup, Validators เป็นต้น ถูกเปิดเผยออกมา ดังนั้นในการใช้งานพวกมัน คุณจะต้องทำการนำเข้า ReactiveFormsModule ใน Angular Module ของคุณ

และเพิ่มเพียงแค่อาเรย์ imports นั้น

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

FormBuilder, FormControl, FormGroup, Validators เป็นต้น ควรถูกนำเข้าเฉพาะใน Components/Services และใช้งานที่นั่น ซึ่งจริงๆ แล้วไม่จำเป็นต้องใช้ในไฟล์ Angular Module

คำตอบ #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 มีเฉพาะ modules

ผู้ให้บริการ มีเพียง บริการ