KendoUI Angular2 - 去抖动滑块

时间:2017-03-16 13:57:07

标签: angular telerik kendo-ui-angular2 kendo-slider

我想在触发滑块更改事件时更新模型+去抖动时间(为了不对布局施加过多压力,因为该模型将用于每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

1 个答案:

答案 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)"