我已经完成了一个自定义验证器,我将其应用于我的两个输入之一:
<input type="text"
class="validate"
[(ngModel)]="foo"
name="foo"
ngControl="foo"
customValidator
[validatorArg]="blah"
/>
<input type="text"
class="validate"
[(ngModel)]="blah"
name="blah"
/>
customValidator
取决于第二个输入。所以我在这里想要的是在我修改foo
输入时触发blah
输入上的验证器。
知道怎么做吗?我可以在ngModelChange
编辑:我的输入是表单的一部分,是FormGroup
答案 0 :(得分:5)
模板驱动表单有点问题。我这样做了
<input name="blah" ... (ngModelChange)="triggerValidation(formObject.controls.foo)">
triggerValidation(control: AbstractControl) {
control.markAsTouched();
setTimeout(() => control.updateValueAndValidity(), 0);
}
如果同步运行updateValueAndValidity()(没有超时),它可能会使用“blah”输入的旧值。