javascript / intermediate
Snippet
Implementierung eigener asynchroner Validatoren
Asynchrone Validatoren sind essenziell für Aufgaben wie die Überprüfung der Verfügbarkeit eines Benutzernamens gegenüber einem Server. Sie geben ein Observable oder Promise zurück, das schließlich Validierungsfehler oder null liefert.
snippet.js
1
2
3
4
5
6
7
8
9
10
import { AbstractControl, ValidationErrors } from '@angular/forms';import { Observable, of } from 'rxjs';import { delay, map } from 'rxjs/operators';export function checkUnique(control: AbstractControl): Observable<ValidationErrors | null> {return of(control.value).pipe(delay(1000),map(val => (val === 'taken' ? { exists: true } : null)));}
angular
Erklärung
1
export function checkUnique(control: AbstractControl): Observable<ValidationErrors | null>
Definiert eine Funktion, die ein Control akzeptiert und ein Observable mit Fehlern zurückgibt.
2
return of(control.value).pipe(
Erstellt einen Observable-Stream aus dem aktuellen Wert des Controls.
3
delay(1000),
Simuliert eine Netzwerkverzögerung, indem eine Sekunde gewartet wird.
4
map(val => (val === 'taken' ? { exists: true } : null))
Transformiert den Wert in ein Fehlerobjekt, wenn er 'taken' entspricht, ansonsten null.