Ich mache eine reaktive aus inuglar2. Beim Versuch, mein Formular einzureichen, wird das Formular als ungültig gekennzeichnet. Ich weiß, was das Problem verursacht, aber nicht, wie ich es beheben kann. Für eine meiner Formularsteuerelemente habe ich einen benutzerdefinierten Validator erstellt, der prüft, ob es eine Nummer ist. So ist es erforderlich und es muss eine Nummer sein. Wenn ich meine benutzerdefinierte Überprüfung im Formular lösche, wird sie wieder gültig. Wie behebe ich das Problem, damit ich meine benutzerdefinierte Validierung beibehalten kann?Angular2 - Formular ungültig
contact.component.ts
import { Component } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms'
import { ValidationService } from './validation.service'
@Component({
selector:'contact',
providers:[ValidationService],
templateUrl:'./contact.component.html'
})
export class ContactComponent {
public TicketForm = null ;
projects:Array<string> = ['Project One','Project Two','Project Three'];
constructor(public fb: FormBuilder) {
this.TicketForm = fb.group({
name: [null, Validators.required],
email: [null, Validators.required],
phone: [null, Validators.required],
ticketID: [null, Validators.compose([Validators.required, ValidationService.numberValidation])],
});
}
submit(form:any, isValid:boolean) {
console.log(form, isValid);
}
}
Validation.service.ts
import { Injectable } from '@angular/core';
import { AbstractControl } from "@angular/forms";
interface ValidationResult {
[key:string]:boolean;
}
@Injectable()
export class ValidationService {
constructor() {}
public static numberValidation(control:AbstractControl): ValidationResult {
return ({'valid':!isNaN(control.value)});
}
}
Ein Validator sollte 'null' zurückgeben, wenn das Steuerelement gültig ist, per https://angular.io/docs/ts/latest/cookbook/form-validation.html – jonrsharpe