KendoUI Angular2-去盎司滑块
我想在滑块更改事件触发+去盎司时间时更新一个模型(为了不过分强调布局,因为该模型将用于每250ms刷新一次的海量图表) 这是一个场景: HTML 有可能这样做吗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)"
<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)"