如何使用反应形式检查禁用控制 /检查不会启动/

假设我有这样的形式结构:


this.entryForm = this.formBuilder.group/{
date: [{value:'' , disabled: true}, [Validators.required]],
notes: [''],
sum_credit: [{value:'', disabled: true }],
sum_debit: [{value:'', disabled: true}],
items: this.initItems//
}/;
// set validation function to sum_credit

this.entryForm.controls['sum_credit'].setValidators/[CommonValidations.validateSomthing/.../]/;



sum_credit

禁用,因为始终计算其值。
现在我需要检查一下
sum_credit

一样
sum_debit

, 我已经使用了一个函数
validateSomthing

.
问题是
validateSomthing

它不起作用,因为控制被禁用。 我该如何解决它?

已邀请:

八刀丁二

赞同来自:

Angular 不会导致物理能力有限的字段验证器。
一种解决这个问题的方法 - 将验证器应用于组而不是控件元素 /这将导致每个更新的验证器在相应组内未断开连接的任何表单控件:


this.entryForm = this.formBuilder.group/{
date: [{value:'' , disabled: true}, [Validators.required]],
notes: [''],
sum_credit: [{value:'', disabled: true }],
sum_debit: [{value:'', disabled: true}],
items: this.initItems//
}, { validator: CommonValidations.validateSomthing/.../ }/;


请注意,您需要调整验证程序功能以从控制项读取值。 sum_debit:


validateFn/group: AbstractControl/ {
const control = group.get/'sum_debit'/;
// here you can validate control.value;
}

要回复问题请先登录注册