0
后执行我有一个名为fooValidator
的CustomValidator输入验证(它的作用在这里无关紧要,它只是一个自定义的验证,其验证输入,如果它correponds一些正则表达式):角:在ngModelChange
<form #contratForm="ngForm">
<input type="text"
class="validate"
[(ngModel)]="foo"
name="foo"
ngControl="foo"
fooValidator
(ngModelChange)="blah($event)"
required
/>
</form>
和我的组件:
blah(event) {
if(this.contratForm.controls.foo.valid){
console.log("Valid")
}
}
“有效”从未显示在我的控制台中。这发生在ngModelChange在验证之前执行。我可以将我的blah
函数包装在setTimeout
中,并且会显示“有效”。有没有办法这样做,而不使用hacky setTimeout
?
是验证异步? –
一点也不,它只是检查输入是否与正则表达式匹配。是否应该在没有setTimeout的情况下工作? – Scipion
您可以订阅'statusChanges',如https://angular.io/docs/ts/latest/guide/reactive-forms.html#!#observe-control for'valueChanges'所示。 –