angular - supply - Ningún proveedor para FormBuilder
must supply a value for form control with name (1)
Esta pregunta ya tiene una respuesta aquí:
Todavía soy nuevo en esto y estoy aprendiendo a través de tutoriales, pero por alguna razón recibo el mensaje No provider for formbuilder
cuando intento probar un nombre de usuario único. No estoy seguro de por qué recibo este mensaje, pero no puedo encontrar una solución. ¿Puede alguien decirme por qué está pasando esto?
registro-componente.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;
}
}
Importar FormsModule
y FormsModule
ReactiveFormsModule
y FormsModule
@NgModule({
imports: [
BrowserModule /* or CommonModule */,
FormsModule, ReactiveFormsModule
],
...
})
en el módulo donde estás usando FormBuilder