2017-07-17 68 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 
      } 

該警報將火每個重點|上提交的輸入端(IN OUT)。如果模型對象有任何更改,我想要打這個函數。

如何處理它,併爲什麼ngModelChange事件觸發時,在輸入框中注入和輸出?

+0

你可以讓'filterText'成爲getter/setter並在setter中調用代碼。我懷疑這個事件會引發焦點。它可能會在'模糊'時被解僱,但只有當價值實際發生變化時纔會被解僱。 –

+0

@GünterZöchbauer耶!由於'ngModelChange'事件,我完全厭倦了。真的,我不知道爲什麼ngModelChange事件觸發,當我只是點擊文本框(焦點進出)。我不知道這件事。 –

+0

什麼是'pInputText'? –

回答

1

因爲他們的工作是由於您使用[(ngModel)] 你有重點和模糊方法

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

LIVE DEMO

更新基於評論

來處理在文本框中的變化和它觸發了(ngModelChange)

+0

其實我不想在調焦和模糊時調用'clearfilter();'事件。 –

+0

它僅用於演示目的。 – Aravind

+0

但在我的情況。我不想在注意力集中的情況下使用任何方法。一旦ng模型對象有任何改變,我只想調用一個函數。 –