Я все еще новичок в этом и учась через учебные пособия, но по какой-то причине я получаю сообщение No provider for formbuilder
при попытке проверить уникальное имя пользователя.
Я не уверен, почему я получаю это сообщение, но я не могу найти решение. Может ли кто-нибудь сказать мне, почему это происходит?
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
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;
}
}