Skip to content
This repository was archived by the owner on Sep 5, 2024. It is now read-only.

Commit 441cbf1

Browse files
karolkochanThomasBurleson
authored andcommitted
fix(md-slider): set step property relative to min
Closes #4403. Fixes #4385.
1 parent 23a7f02 commit 441cbf1

File tree

2 files changed

+11
-8
lines changed

2 files changed

+11
-8
lines changed

src/components/slider/slider.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ function SliderDirective($$rAF, $window, $mdAria, $mdUtil, $mdConstant, $mdThemi
281281
}
282282
function stepValidator(value) {
283283
if (angular.isNumber(value)) {
284-
var formattedValue = (Math.round(value / step) * step);
284+
var formattedValue = (Math.round((value - min) / step) * step + min);
285285
// Format to 3 digits after the decimal point - fixes #2015.
286286
return (Math.round(formattedValue * 1000) / 1000);
287287
}

src/components/slider/slider.spec.js

+10-7
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ describe('md-slider', function() {
189189

190190
it('should disable via the `disabled` attribute', function() {
191191
var slider = setup('disabled');
192-
192+
193193
// Check for disabled state by triggering the pressdown handler and asserting that
194194
// the slider is not active.
195195
slider.triggerHandler({
@@ -242,20 +242,23 @@ describe('md-slider', function() {
242242

243243
it('should increment at a predictable step', function() {
244244

245-
buildSlider(0.1, 1).drag({x:70});
245+
buildSlider(0.1, 0, 1).drag({x:70});
246246
expect(pageScope.value).toBe(0.7);
247247

248-
buildSlider(0.25, 1).drag({x:45});
248+
buildSlider(0.25, 0, 1).drag({x:45});
249249
expect(pageScope.value).toBe(0.5);
250250

251-
buildSlider(0.25, 1).drag({x:35});
251+
buildSlider(0.25, 0, 1).drag({x:35});
252252
expect(pageScope.value).toBe(0.25);
253253

254-
buildSlider(1, 100).drag({x:90});
254+
buildSlider(1, 0, 100).drag({x:90});
255255
expect(pageScope.value).toBe(90);
256256

257-
function buildSlider(step, max) {
258-
var slider = setup('ng-model="value" min="0" max="' + max + '" step="' + step + '"');
257+
buildSlider(20, 5, 45).drag({x:50});
258+
expect(pageScope.value).toBe(25);
259+
260+
function buildSlider(step, min, max) {
261+
var slider = setup('ng-model="value" min="' + min + '" max="' + max + '" step="' + step + '"');
259262
pageScope.$apply('value = 0.5');
260263

261264
return {

0 commit comments

Comments
 (0)