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'所示。 –