Hi, friends!
How to validate from a database service? its not working:
UsuarioValidator.ts
import { FormControl } from '@angular/forms';
import { VentasServicio } from "../providers/ventas-servicio";
export class UsuarioValidator {
static isUsuario(control: FormControl): any {
return new Promise(resolve => {
let db: VentasServicio;
db.getUsuario(control.value).then((data) => {
if (data === null) {
resolve(null);
} else {
resolve({ "is_usuario": true });
}
})
.catch(error => {
console.log('ERROR ' + error);
});
});
}
}
RegistroPage.ts
constructor(public navCtrl: NavController, public navParams: NavParams,
public alertCtrl: AlertController, public formBuilder: FormBuilder, public db: VentasServicio) {
this.registroFrm = this.formBuilder.group({
'usuario': ['', Validators.required, UsuarioValidator.isUsuario],
'clave': ['', Validators.required],
'email': ['', Validators.required],
'usuarioInventiva': ['', Validators.required]
});
}
RegistroPage.html
<ion-item>
<ion-label stacked>Usuario</ion-label>
<ion-input formControlName="usuario" type='text' autocapitalize="off"></ion-input>
</ion-item>
<ion-item *ngIf="registroFrm.get('usuario').pending">
<p>Verificando usuario...</p>
</ion-item>
<ion-item *ngIf="registroFrm.get('usuario').errors && registroFrm.get('usuario').dirty">
<p *ngIf="registroFrm.get('usuario').hasError('required')" color="danger">Campo requerido</p>
<p *ngIf="registroFrm.get('usuario').hasError('is_usuario')" color="danger">Usuario ya existe</p>
</ion-item>
Thanks!