diff --git a/src/lib/slider/slider.spec.ts b/src/lib/slider/slider.spec.ts index 35ce2babed86..fd4c5080164f 100644 --- a/src/lib/slider/slider.spec.ts +++ b/src/lib/slider/slider.spec.ts @@ -517,6 +517,17 @@ describe('MdSlider', () => { expect(ticksElement.style.transform).toContain('translateX(9%)'); expect(ticksContainerElement.style.transform).toBe('translateX(-9%)'); }); + + it('should be able to reset the tick interval after it has been set', () => { + expect(sliderNativeElement.classList) + .toContain('mat-slider-has-ticks', 'Expected element to have ticks initially.'); + + fixture.componentInstance.tickInterval = null; + fixture.detectChanges(); + + expect(sliderNativeElement.classList) + .not.toContain('mat-slider-has-ticks', 'Expected element not to have ticks after reset.'); + }); }); describe('slider with thumb label', () => { @@ -1248,10 +1259,12 @@ class SliderWithStep { class SliderWithAutoTickInterval { } @Component({ - template: ``, + template: ``, styles: [styles], }) -class SliderWithSetTickInterval { } +class SliderWithSetTickInterval { + tickInterval = 6; +} @Component({ template: ``, diff --git a/src/lib/slider/slider.ts b/src/lib/slider/slider.ts index 758a4ffd5ba1..4ab45244fff8 100644 --- a/src/lib/slider/slider.ts +++ b/src/lib/slider/slider.ts @@ -163,8 +163,14 @@ export class MdSlider implements ControlValueAccessor { */ @Input() get tickInterval() { return this._tickInterval; } - set tickInterval(v) { - this._tickInterval = (v == 'auto') ? v : coerceNumberProperty(v, this._tickInterval); + set tickInterval(value) { + if (value === 'auto') { + this._tickInterval = 'auto'; + } else if (typeof value === 'number' || typeof value === 'string') { + this._tickInterval = coerceNumberProperty(value, this._tickInterval as number); + } else { + this._tickInterval = 0; + } } /** @deprecated */