我有一个离子范围(单选按钮),我获取数据并推送它,以便我可以在mongodb中搜索该数据并将其响应给客户端。但是每当用户拖动它时(不立即离开它) )它需要所有数据并在mongodb上搜索n次,以便它变得更慢。我想要做的是设置一个setTime,以便在大约1秒后用户放下按钮它将发送数据,而不是瞬时
HTML
<ion-range min="0" max="200" pin="true" [(ngModel)]="distance" color="secondary" (ngModelChange)="Change()">
<i class="fa fa-map-marker" range-left aria-hidden="true"></i>
<i class="fa fa-map-marker" style="font-size:25px;" range-right aria-hidden="true"></i>
</ion-range>
TS
Change() {
var data = {
distance: this.distance,
lat: this.lat1,
long: this.long1
}
this.http.post('http://localhost:xxxx/api/xxx', data)
.map(res => res.json())
.subscribe(data => {
this.distanceArray = data;
})
}
我想在}和之间我需要把setTimeint但我从来没用过它。你的想法是什么。
谢谢
答案 0 :(得分:0)
ion-range
的输入属性debounce
是
等待触发ionChange事件的时间(以毫秒为单位) 每次更改范围值后。默认为0.
我强烈建议您使用服务,而不是直接从组件发出http请求。
修改强>
将debounce
与ionChange
一起使用,而不是ngModelChange
<ion-range min="0" max="200" pin="true" debounce="1000" [(ngModel)]="distance" color="secondary" (ionChange)="Change($event)">
.......
</ion-range>