asynchronous - How to trigger validation input after debounce time in Angular2? -
i have form "name" control.
<div class="field"> <label>name</label> <input ngcontrol="name"> <p *ngif="name.pending"> fetching data server... </p> <div *ngif="!name.valid && !name.pending" class="ui error message">name not valid</div> </div> the control built formbuilder :
this.name = fb.control('', null, this.characternamevalidator.bind(this)); and created validator :
characternamevalidator(control: control) { let q = new promise((resolve, reject) => { settimeout(() => { if (this._characterservice.ischaracternamealreadyexists(control.value)) { resolve({namecharacteralreadyexistserror: true}); } else { resolve(null); } }, 1000) }); return q; } on each keystroke, validator called. i'm looking way call validator after debounce time.
i try valuechanges(), understand if call specific service not in case of validation.
edit
is idea manage validation manually achieve problem ? don't put validator in control set errors manually on valuechanges.
this.name = fb.control(''); this.name.valuechanges.debouncetime(400).subscribe(() => { this.characternamevalidator(this.name).then((validationresult => { this.name.seterrors(validationresult) })) });
see https://github.com/angular/angular/issues/1068 related open issue.
if pass reference control validator use like
this.formgp.controls['numberfld'].updatevalueandvalidity();
Comments
Post a Comment