0
後に実行検証(何それがないことはここでは関係ありません、それはそれはいくつかの正規表現にcorreponds場合は入力を検証するだけでカスタムバリデータです)fooValidator
の名前:角度:私はのCustomValidatorで入力を持っている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が実行されるときに発生します。私はsetTimeout
に私のblah
関数をラップすることができ、 "Valid"が表示されます。ハッキーを使わずにそうする方法はありますかsetTimeout
?
を使用することができますが、バリデータの非同期ですか? –
入力が正規表現にマッチしているかどうかを確認するだけです。それはsetTimeoutなしで働くことになっていますか? – Scipion
'valueChanges'のためにhttps://angular.io/docs/ts/latest/guide/reactive-forms.html#!#observe-controlに表示されているような' statusChanges'を購読することができます –