我正在以下列方式构建我的FormGroup
:
this.datesGroup = this.fb.group({
arrivalDate: [null, Validators.required],
departureDate: [null, Validators.required]
}, (fg: FormGroup) => {
console.log('validate');
return moment.unix(fg.value.departureDate.epoc).diff(moment.unix(fg.value.arrivalDate.epoc)) > 0 ?
null : {
'departureBeforeArrival': true
};
});
this.formGroup = this.fb.group({
dates: this.datesGroup,
accommodation: ['', Validators.required]
});
但是上面的验证箭头功能永远不会被触发;控制台永远不会记录。我做错了什么?
答案 0 :(得分:1)
FormBuilder.group
方法有两个参数:
group(controlsConfig: {
[key: string]: any;
}, extra?: {
[key: string]: any;
} | null): FormGroup;
其中extra
可以object
,其属性为validator
和/或asyncValidator
。
所以我会将你的代码更改为:
this.datesGroup = this.fb.group({
arrivalDate: [null, Validators.required],
departureDate: [null, Validators.required]
}, {
validator: (fg: FormGroup) => {
console.log('validate');
return 1 > 0 ?
null : {
'departureBeforeArrival': true
};
}
});
找到实例