【发布时间】:2016-08-16 15:42:15
【问题描述】:
我的html有一个开始和结束日期输入标签
我使用有角度的 FormBuilder 和自定义验证器来确保开始日期和结束日期有效。
在我的组件中,这里是我的 sn-p:
this.form = fb.group({
startdate: ['',Validators.compose([Validators.required,ModelValidators.validStartDate])],
enddate: ['',Validators.compose([Validators.required,ModelValidators.validEndDate])],
});
这是我的验证器:
static validStartDate(control: Control){
var valid: any;
valid=null;
var diff:any;
diff = new Date(control.value).valueOf() - new Date('1999-01-01').valueOf();
if (diff>=0){
valid=true;
}
return valid ? null : { validStartDate: true };
}
static validEndDate(control: Control){
var valid: any;
valid=null;
var diff:any;
diff = new Date().valueOf() - new Date(control.value).valueOf();
if (diff>3600*24){
valid=true;
}
return valid ? null : { validEndDate: true };
}
现在..如何验证结束日期大于开始日期以及结束日期 - 开始日期大于 1 年?
例如是否可以将其他数据传递给 ModelValidators.validEndDate 函数?
【问题讨论】:
-
否,但验证器不必是静态静态方法。如果不是,它可以访问
this.form,以及startdate控件
标签: angular typescript