2017-12-13 21 views
0

私は10文字後にWebサービスを呼び出そうとしていますが、私は(input)="onInput()"を2回呼び出した理由を知らないと気付きました。差b/w(入力)と(イオン交換)イベント - イオン3

検索回数が少なくなったため、ionChange="onInput()"に変更されました。うまく動作しています。 私の質問は:

1:これらの2つのイベントは違いますか?
2:ionic-3でevent.stopPropagation()を使用しても問題ないです。

HTML:

<ion-input type="text" [(ngModel)]='time' 
    (ionChange)='onInput($event)'> 
</ion-input> 

home.ts

onInput() { 
    ## call service 
} 

答えて

0

ionChangeBaseInput.tsに定義されている.IT最もカスタムコンポーネントに入力された変更を処理するためにイオンによって使用される角度である持つEventEmitterこれは、input.ts

@Output() ionChange: EventEmitter<BaseInput<T>> = new EventEmitter<BaseInput<T>>(); 
//... 
_fireIonChange() { 
    if (this._init) { 
     this._debouncer.debounce(() => { 
     assert(NgZone.isInAngularZone(), 'IonChange: should be zoned'); 
     this.ionChange.emit(this._inputChangeEvent()); 
     this._initModel = true; 
     }); 
    } 
    } 

inputは、基本的なHTML入力要素だけでなく、Ionic要素でも使用できるDOM inputです。

ionChangeは、inputイベントと比較すると、値が変化したときに複数回発火する可能性があるため、排出前に多数のチェックが行われています。

ionic-3でevent.stopPropagation()を使用して2回コールするのは問題ありません。

はい、htmlの$eventを含む任意のパラメータを渡して、その関数を呼び出すことができます。

関連する問題