私はanuglar2の反応を起こしています。私のフォームを提出しようとすると、そのフォームは無効と表示されます。問題の原因は何かを知っていますが、問題を解決する方法はわかりません。私のフォームコントロールの1つでは、カスタムバリデーターを作成して番号があるかどうかを調べました。だから、その必要とそれは数字でなければなりません。フォーム上で自分のカスタム検証を削除した場合、有効であることに戻ります。これを修正してカスタム検証を続けることができますか?Angular2 - フォームが無効です
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)});
}
}
コントロールが有効な場合は、Validatorが有効な場合は、https://angular.io/docs/ts/latest/cookbook/form-validation.html – jonrsharpe