没有FormBuilder的提供者 [英] No Provider for FormBuilder

查看:221
本文介绍了没有FormBuilder的提供者的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对此还是很陌生,可以通过教程学习,但是由于某种原因,当我尝试测试唯一的用户名时,我收到了消息No provider for formbuilder. 我不确定为什么收到此消息,但找不到解决方案.谁能告诉我为什么会这样吗?

I'm still new to this and learning via tutorials, but for some reason i'm getting the message No provider for formbuilder when trying to test unique username. I'm not sure why i'm getting this message, but i'm unable to find a solution. Can anyone tell me why this is happening?

signup-component.ts

signup-component.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

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;
  }
}

推荐答案

导入ReactiveFormsModuleFormsModule

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

在您使用FormBuilder

这篇关于没有FormBuilder的提供者的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆