Ich versuche ein modalgesteuertes Formular mit benutzerdefinierter Validierung zu erstellen. Ich möchte bestätigen, dass das Passwort der Benutzer die Anforderungen (Großbuchstaben, Kleinbuchstaben und Nummer) beantworten. Das Problem ist, dass ich die Regex nicht speziell in der Methode schreiben möchte, ich möchte einen unumgänglichen Dienst haben, der alle meine Regex konzentrieren. Ich konnte den Dienst der Komponentenklasse injizieren, konnte aber in keiner Weise auf die Dienstinstanz innerhalb der Validetor-Methode zugreifen.Zugriff auf Klassenvariablen aus der Formvalidatormethode in angular 2
Jeder hat eine Idee, wie kann ich auf den Service zugreifen?
Danke.
Dies ist mein Code:
export class SignUpComponent implements OnInit {
regexService:RegexService
builder: FormBuilder
signUpForm: FormGroup;
email: FormControl;
password: FormControl;
passwordAgain: FormControl;
matchedPassword (input: any) {
if(!input.root || !input.root.controls)
return null;
if(input.root.controls.password.value===input.root.controls.passwordAgain.value)
return null;
else
return { mismatchedPassword: true };
}
passwordAnswerRequirements(input: any){
if(!input.root || !input.root.controls)
return null;
if(this.regexService.getRegex('password').test(input.value))
return null;
else
return {notAcceptablePassword:true}
}
constructor(builder: FormBuilder,regexService:RegexService) {
this.builder=builder;
this.regexService=regexService;
}
ngOnInit(){
this.email = new FormControl('', [
Validators.required,
]);
this.password = new FormControl('', [
Validators.required,
this.matchedPassword,
this.passwordAnswerRequirements
]);
this.passwordAgain=new FormControl('',[
Validators.required,
this.matchedPassword,
this.passwordAnswerRequirements
]);
this.signUpForm = this.builder.group({
email: this.email,
password: this.password,
passwordAgain:this.passwordAgain
});
}
Mein Service-Name ist 'RegexService' und der validetor Funktionsname ist 'passwordAnswerRequirements'
Code fehlt das Stichwort 'CLASS' – AngJobs
hatte ich is..Just tat es hier kopieren ... Ive meine Frage bearbeitet –