Advertisement
Guest User

Untitled

a guest
Mar 26th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.91 KB | None | 0 0
  1. @Directive({
  2. selector: '[validatorUsername]',
  3. providers: [{ provide: NG_ASYNC_VALIDATORS, useExisting: ValidatorUsernameDirective, multi: true }]
  4. })
  5. export class ValidatorUsernameDirective implements Validator {
  6. validate(c: AbstractControl) {
  7. let username = c.value;
  8.  
  9. return new Promise(resolve => {
  10. setTimeout(() => {
  11. if( username === "nemo" ) {
  12. resolve({
  13. 'taken': true
  14. })
  15. } else {
  16. resolve(null);
  17. }
  18. }, 1000);
  19. });
  20. }
  21. }
  22.  
  23. <input type="text" [(ngModel)]="username" name="username" required validatorUsername>
  24.  
  25. export class App implements OnInit {
  26. @ViewChild('myForm') myForm: NgForm;
  27.  
  28. name: string;
  29. username: string;
  30.  
  31. ngOnInit() {
  32. this.myForm.valueChanges.subscribe(_ => this.onValueChanged());
  33. }
  34.  
  35. onValueChanged() {
  36. // fill 'formErrors' object
  37. }
  38.  
  39. formErrors = {
  40. 'name': '',
  41. 'username': ''
  42. };
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement