通过按钮递增和递å‡â€œè§’度ææ–™â€æ»‘å—

时间:2019-03-07 20:03:11

标签: angular angular-material

除了Angular Material (7.3) sliderçš„å¹»ç¯ç‰‡åŠŸèƒ½å¤–,我的应用程åºè¿˜å…·æœ‰é€’增和递å‡æŒ‰é’®ï¼Œå¯å°†æ»‘å—移动一个step。增é‡å’Œå‡é‡æŒ‰é’®åœ¨æ»‘å—的外部,将滑å—的行为与最å°å€¼ï¼Œæœ€å¤§å€¼ï¼Œæ­¥è¿›å’Œé”®ç›˜äº¤äº’行为é‡å¤ã€‚

有人知é“一ç§é¿å…é‡å¤é€»è¾‘的方法,例如,仅通过å‘滑å—å‘é€â€œè‡ªå·±å¢žåŠ /å‡å°‘â€äº‹ä»¶å³å¯ã€‚

2 个答案:

答案 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函数,以触å‘滑å—的更改。