Solución:
Puede crear un validador personalizado para manejar esto.
new FormControl(field.fieldValue || '', [Validators.required, this.noWhitespaceValidator])
Agregue el método noWhitespaceValidator a su componente
public noWhitespaceValidator(control: FormControl) {
const isWhitespace = (control.value || '').trim().length === 0;
const isValid = !isWhitespace;
return isValid ? null : { 'whitespace': true };
}
y en el HTML
<div *ngIf="yourForm.hasError('whitespace')">Please enter valid data</div>
Quizás este artículo pueda ayudarte http://blog.angular-university.io/introduction-to-angular-2-forms-template-driven-vs-model-driven/
En este enfoque, debe usar FormControl, luego observar los cambios de valor y luego aplicar su máscara al valor. Un ejemplo debería ser:
...
form: FormGroup;
...
ngOnInit(){
this.form.valueChanges
.map((value) => {
// Here you can manipulate your value
value.firstName = value.firstName.trim();
return value;
})
.filter((value) => this.form.valid)
.subscribe((value) => {
console.log("Model Driven Form valid value: vm = ",JSON.stringify(value));
});
}
Evite que el usuario ingrese espacio en el cuadro de texto en Angular 6
<input type="text" (keydown.space)="$event.preventDefault();" required />
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)