2017-07-17 4 views
0

sample.htmlなぜngModelChangeイベントは、入力ボックスにフォーカスしたり出たりするときにトリガされますか?提出された入力に|(アウト)

<input #gb type="text" pInputText class="ui-widget ui-text" [(ngModel)] 
="filterText" (ngModelChange)="filterText = $event; clearFilter(filterText)"/> 

componenent.ts

clearFilter(value) { 
       alert(value);// values is empty 
      } 

このアラートは、火災、すべての焦点になります。モデルオブジェクトに変更があった場合は、その関数にヒットしたいと思います。

どうすればいいですか?ngModelChange入力ボックスにフォーカスしている間にイベントトリガーが発生するのはなぜですか?

+0

'filterText'をゲッター/セッターにして、セッターでコードを呼び出すことができます。私はイベントが焦点に合わせて解雇されるのではないかと疑う。実際に値が変更された場合にのみ、おそらく 'blur'ではなくAFAIRで発生します。 –

+0

@GünterZöchbauerええ! 'ngModelChange'イベントのために完全に疲れています。実際にテキストボックスをクリックしたときにngModelChangeイベントがトリガーされた理由はわかりません(フォーカスイン/アウト)。私はそれについて全く知らない。 –

+0

'pInputText'とは何ですか? –

答えて

1

自分の仕事は、あなたが焦点とぼかし方法

<input #gb type="text" pInputText class="ui-widget ui-text" 
    [(ngModel)] ="filterText" 
    (ngModelChange)="clearFilter(filterText)" 
    (blur)="clearFilter($event)" 
    (focus)="clearFilter($event)"/> 

LIVE DEMO

を持って テキストボックスの変更を処理することであるため、あなたが[(ngModel)]を使用しているのでコメント

に基づいて更新し、 (ngModelChange)トリガーしています。

+0

実際には、フォーカスとぼかしの間に 'clearfilter();'イベントを呼びたくありません。 –

+0

デモ用です。 – Aravind

+0

私のシナリオでは。私は焦点を合わせながら、どんな方法でも打つことは望まない。一度ngモデルオブジェクトに変更があったら関数を呼び出すだけです。 –

関連する問題