给个大概吧:
/** 自定义验证器 */
checkRented(control:FormControl) {
let form:FormGroup = this.add
/** 出租面积小于建筑面积即通过此验证器 */
if(form && form.get('roomDecorateState').value - control.value > 0){
return null
}
/** 不通过验证,rentedErr 为表单错误标示,可以供后期判断错误类型 */
return { rentedErr:true }
}
在构造表单的函数中:
let _checkRented = this.checkRented.bind(this)
this.add = this.form.group({
/** 此处省略其他字段 */
...
roomRentedAcreage: [null, [Validators.required, _checkRented]]
})
当发生错误时,可在模版上给出很明确当提示:
请确保出租面积小于输入的建筑面积