私は自分のformcomponentクラスに配列を持っていて、その配列をバリデーター関数に渡したいと思っています。フォームに複数のバリデータを追加する場合は、Validators.compose関数を使用しています。これはバリデータ関数の名前だけを受け付け、渡すパラメータは受け付けません。 "compose"関数内の関数呼び出しにパラメータを追加することは可能ですか?任意の助けバリデーター関数への角度2のパスパラメーター
export class ClientFormComponent
{
clientForm: ControlGroup;
npi: AbstractControl;
name: AbstractControl;
constructor(private _clientService: ClientService, _fb: FormBuilder) {
this.clientForm = _fb.group({ 'name': ['', Validators.compose([Validators.required])], 'npi': ['', Validators.compose([Validators.required, npiNumValidator, Validators.maxLength(10), Validators.minLength(10)])]});
this.name = this.clientForm.controls['name'];
this.npi = this.clientForm.controls['npi'];
}
@Input() clientList;
active = true;
onSubmit(value: Client) {
this._clientService.addDeleteClient(value, true)
.subscribe(
client => this.clientList.push(client));
}
}
function npiNumValidator(control: Control): { [s: string]: boolean } {
if (isNaN(control.value)) {
return { npiNAN: true };
}
}
ありがとう!
私はこの方法を使用しますRC4。バリデータ関数が呼び出されると 'this'は定義されていません – Droxx
Droxx - Angular 2.4.0と同じ問題があり、バリデータ関数にクラス内のプロパティを含めることを試みています。 'これは未定義です –
@JackKoppa私は私の答えを更新しました。 –