Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
KendoUI Angular2-去盎司滑块_Angular_Telerik_Kendo Ui Angular2_Kendo Slider - Fatal编程技术网

KendoUI Angular2-去盎司滑块

KendoUI Angular2-去盎司滑块,angular,telerik,kendo-ui-angular2,kendo-slider,Angular,Telerik,Kendo Ui Angular2,Kendo Slider,我想在滑块更改事件触发+去盎司时间时更新一个模型(为了不过分强调布局,因为该模型将用于每250ms刷新一次的海量图表) 这是一个场景: HTML 有可能这样做吗 <kendo-slider [min]="1" [max]="5" [(ngModel)]="model" (valueChange)="functionToBeDebounced($event)"

我想在滑块更改事件触发+去盎司时间时更新一个模型(为了不过分强调布局,因为该模型将用于每250ms刷新一次的海量图表)

这是一个场景:

HTML

有可能这样做吗

    <kendo-slider [min]="1" 
                  [max]="5" 
                  [(ngModel)]="model" 
                  (valueChange)="functionToBeDebounced($event)"
                  [debounce]="500" >
    </kendo-slider>


结果将是仅当滑动结束时才调用
函数bedebounched

您可以使用rxjs/Subject来消除所需的一切

import { Subject } from 'rxjs/Subject';


很好,谢谢!完全忘记了反应式方法;)你能提出一个更通用的方法吗?例如,如果您有多个控件需要去Bouncing。@Misi可以为每个控件使用一个去Bouncer,也可以只使用一个去Bouncer,但要跟踪
callDebouncer
函数中使用的控件。@plopy如果只使用一个去Bouncer,您将如何跟踪需要去Bouncing的开关控件?private callDebouncer(control,event){switch(control){case“slider1”:..}}???@Misi$event包含html元素,您可以通过示例用id标记标识控件。然后在
callDebouncer
函数中,将活动控件保存在变量中(在组件中声明)。然后在
subscribe
方法中,您知道当前使用的是哪个控件,通过开关/案例,您将能够做任何您想做的事情。我不确定这是否是正确的方法,但它应该有效。
    <kendo-slider [min]="1" 
                  [max]="5" 
                  [(ngModel)]="model" 
                  (valueChange)="functionToBeDebounced($event)"
                  [debounce]="500" >
    </kendo-slider>
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)"