programing

FormBuilder 제공자 없음

elseif 2023. 4. 24. 22:34

FormBuilder 제공자 없음

아직 처음이고 튜토리얼을 통해 배우지만 왠지 모르게 메시지가 나타납니다.No provider for formbuilder원하는 사용자 이름을 테스트하려고 할 때 사용합니다.왜 이 메시지가 표시되는지 모르겠지만 해결책을 찾을 수 없습니다.누가 왜 이런 일이 일어나는지 말해 줄 수 있나요?

등록 컴포넌트.ts

import {Component} from '@angular/core';
import {ControlGroup, Control, Validators, FormBuilder} from '@angular/common'
import {UsernameValidators} from './usernameValidators'

@Component({
selector: 'signup',
templateUrl: 'signup-component.html'

})
export class SignupComponent{
  form: ControlGroup;

  constructor(fb: FormBuilder){
    this.form = fb.group({
      username:['', Validators.compose([
          Validators.required, UsernameValidators.cannotContainSpace
      ])],
      password: ['', Validators.required]
    })
  }
}

usernameValidators.ts

import {Control} from '@angular/common'


export class UsernameValidators{

  static shouldBeUnique(control: Control){
    return new Promise((resolve, reject) => {
      setTimeout(function(){
        if(control.value == "andy")
          resolve({shouldBeUnique: true});
        else
          resolve(null);
      }, 1000);

    });

  }


  static cannotContainSpace(control: Control){
    if (control.value.indexOf(' ') >= 0)
      return {cannotContainSpace: true};

    return null;
  }
}

수입품ReactiveFormsModule그리고.FormsModule

@NgModule({
  imports: [
      BrowserModule /* or CommonModule */, 
      FormsModule, ReactiveFormsModule
  ],
  ...
})

사용 중인 모듈에서FormBuilder

언급URL : https://stackoverflow.com/questions/40249065/no-provider-for-formbuilder