我试图在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
并调用其功能。