我仍然是新手,通过教程学习,但由于某些原因,我在try 测试唯一用户名时收到了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]
    })
  }
}

用户名验证器.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;
  }
}

推荐答案

进口ReactiveFormsModuleFormsModule

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

在你使用FormBuilder的模块中

Angular相关问答推荐

当通过指令合成添加到组件时,Angular 指令@ Investment被忽略

Angular 17中inner @for内部的递进模板

*ngFor循环中令人困惑的Angular 行为

Transloco不加载Angular 17中的翻译

如何在HTML外部项目中使用Web组件(以17角创建)

带迭代的Angular 内容投影

截获火灾前调用公共接口

VS 2022 停留在运行 Angular 应用程序上

我的验证器收到一个始终为空的可观察值

错误:服务或构建Angular 项目时模块构建失败

Angular:组件的内容投影访问数据

如何在Angular中自动路由到子路由

Angular SPA 和 .Net 6 API 之间未连接 Application Insights Map

ng test 和 ng e2e 之间的真正区别是什么

如何测试 Angular2 的 router.navigate?

无法从模块it was neither declared nor imported导出服务

angular2中的httpinterceptor类似功能是什么?

angular 5 material - 表单字段停留在 180px

Angular 2 更改事件 - 模型更改

ng add 与 npm install 在 Angular 6 中的区别