Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Directive({
- selector: '[validatorUsername]',
- providers: [{ provide: NG_ASYNC_VALIDATORS, useExisting: ValidatorUsernameDirective, multi: true }]
- })
- export class ValidatorUsernameDirective implements Validator {
- validate(c: AbstractControl) {
- let username = c.value;
- return new Promise(resolve => {
- setTimeout(() => {
- if( username === "nemo" ) {
- resolve({
- 'taken': true
- })
- } else {
- resolve(null);
- }
- }, 1000);
- });
- }
- }
- <input type="text" [(ngModel)]="username" name="username" required validatorUsername>
- export class App implements OnInit {
- @ViewChild('myForm') myForm: NgForm;
- name: string;
- username: string;
- ngOnInit() {
- this.myForm.valueChanges.subscribe(_ => this.onValueChanged());
- }
- onValueChanged() {
- // fill 'formErrors' object
- }
- formErrors = {
- 'name': '',
- 'username': ''
- };
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement