除了Angular Material (7.3) sliderçš„å¹»ç¯ç‰‡åŠŸèƒ½å¤–,我的应用程åºè¿˜å…·æœ‰é€’增和递å‡æŒ‰é’®ï¼Œå¯å°†æ»‘å—移动一个step
。增é‡å’Œå‡é‡æŒ‰é’®åœ¨æ»‘å—的外部,将滑å—的行为与最å°å€¼ï¼Œæœ€å¤§å€¼ï¼Œæ¥è¿›å’Œé”®ç›˜äº¤äº’行为é‡å¤ã€‚
有人知é“一ç§é¿å…é‡å¤é€»è¾‘的方法,例如,仅通过å‘滑å—å‘é€â€œè‡ªå·±å¢žåŠ /å‡å°‘â€äº‹ä»¶å³å¯ã€‚
ç”案 0 :(得分:1)
您å¯ä»¥æ‰§è¡Œä»¥ä¸‹æ“作æ¥å®Œæˆæ¤æ“作。
在组件ä¸èŽ·å–对您的mat-slider
的引用。
import {MatSlider} from '@angular/material';
@ViewChild(MatSlider) _matSlider: MatSlider;
然åŽåˆ›å»ºæ‚¨çš„递增和递å‡æ–¹æ³•ã€‚
 Âå°†æ£æ•°ä¼ 递给专用
_increment
æ–¹æ³•å°†å¢žåŠ ï¼Œä¼ é€’è´Ÿæ•°å°†å‡å°...然åŽï¼Œæ‚¨éœ€è¦æ‰‹åŠ¨è°ƒç”¨_emitInputEvent
和_emitChangeEvent
方法进行更新值。
public IncrementSlider(){
this._matSlider['_increment'](1);
this._matSlider['_emitInputEvent']();
this._matSlider['_emitChangeEvent']();
}
public DecrementSlider(){
this._matSlider['_increment'](-1);
this._matSlider['_emitInputEvent']();
this._matSlider['_emitChangeEvent']();
}
Stackblitz
https://stackblitz.com/edit/angular-1bly2u?embed=1&file=app/slider-configurable-example.ts
ç”案 1 :(得分:0)
我的建议是查看code example they provide,然åŽå•å‡»â€œæŸ¥çœ‹æºä»£ç â€æŒ‰é’®ï¼ˆçœ‹èµ·æ¥åƒ< >
),以获å–有关如何使用API​​的更多详细信æ¯ã€‚
å¬èµ·æ¥åƒæ‚¨æƒ³è¦çš„是能够从用户直接与滑å—互动或通过å•å‡»æŒ‰é’®æ¥æ›´æ”¹æ»‘å—的当å‰å€¼ã€‚å¯ä»¥é€šè¿‡ä½¿ç”¨two-way data bindingæ¥å®žçŽ°ã€‚è¿™æ ·å¯ä»¥ä½¿æŒ‰ä¸‹æŒ‰é’®æ—¶å‘生的更改åæ˜ åœ¨æ»‘å—的当å‰å€¼ä¸ï¼Œä»¥åŠæ»‘å—本身更新æ¤å€¼æ—¶ã€‚
对于模æ¿ï¼š
<mat-slider
[step]="step"
[(ngModel)]="value">
<mat-slider>
在您的组件ä¸ï¼š
class ComponentClass {
value = 0;
step = 1;
// other vals
increaseSlider() {
this.value += this.step;
}
decreaseSlider() {
this.value -= this.step;
}
}
å¯ä»¥ä»ŽæŒ‰é’®increaseSlider()
事件ä¸è°ƒç”¨è¿™äº›decreaseSlider()
å’Œclick
函数,以触å‘滑å—的更改。