差异b/w(输入)和(ionchange)事件 - 离子3



我试图在10个字符后调用Web服务,但是我注意到当我使用(input)="onInput()"时,它两次都不知道为什么。

几乎没有搜索后,我将其更改为ionChange="onInput()",它可以正常工作。我的问题是:

1:差异b/w这两个事件?
2:在离子3中使用的event.stopPropagation()可以防止两次呼叫。

html:

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

home.ts

onInput() {
   ## call service
}

ionChange是一个角度eventemitter,ionic使用它来处理大多数自定义组件中的输入更改。它在baseinput.ts中定义了,该ts在input.ts.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输入元素一起使用的DOM input

ionChange,与input事件相比,在发射之前已经进行了许多检查,这可能会阻止其在价值变化时多次发射。

在Ionic-3中使用了使用的事件。

是的,您可以传递任何参数,包括HTML $event并调用其功能。

最新更新