我想在触发滑块更改事件时更新模型+去抖动时间(为了不对布局施加过多压力,因为该模型将用于每250ms刷新一次的大量图表)。 / p>
这是情景:
HTML
<kendo-slider [min]="1"
[max]="5"
[(ngModel)]="model"
(valueChange)="functionToBeDebounced($event)">
</kendo-slider>
TS
public functionToBeDebounced(value) {
this.model = value;
this.notification.emit(this.model);
}
是否可以做这样的事情?
<kendo-slider [min]="1"
[max]="5"
[(ngModel)]="model"
(valueChange)="functionToBeDebounced($event)"
[debounce]="500" >
</kendo-slider>
结果只有在滑动结束时才会调用functionToBeDebounced
。
答案 0 :(得分:3)
你可以使用rxjs / Subject去除你想要的一切。
import { Subject } from 'rxjs/Subject';
private debouncer: Subject<any> = new Subject();
ngOnInit(){
this.debouncer.debounceTime(500).subscribe(event => {
this.functionToBeDebounced(event);
});
}
private callDebouncer(event){
this.debouncer.next(event);
}
(valueChange)="callDebouncer($event)"