Skip to content

Commit 437ec8e

Browse files
MikeRyanDevjelbourn
authored andcommitted
feat(slider): implement ControlValueAccessor setDisabledState (#1603)
This enables controlling the disabled state of a slider using a custom form control's `enable()` and `disable()` methods.
1 parent ff84842 commit 437ec8e

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

src/lib/slider/slider.spec.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -659,6 +659,24 @@ describe('MdSlider', () => {
659659
expect(sliderInstance.value).toBe(7);
660660
});
661661

662+
it('should update the disabled state when control is disabled', () => {
663+
expect(sliderInstance.disabled).toBe(false);
664+
665+
testComponent.control.disable();
666+
fixture.detectChanges();
667+
668+
expect(sliderInstance.disabled).toBe(true);
669+
});
670+
671+
it('should update the disabled state when the control is enabled', () => {
672+
sliderInstance.disabled = true;
673+
674+
testComponent.control.enable();
675+
fixture.detectChanges();
676+
677+
expect(sliderInstance.disabled).toBe(false);
678+
});
679+
662680
// TODO: Add tests for ng-pristine, ng-touched, ng-invalid.
663681
});
664682

src/lib/slider/slider.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,13 @@ export class MdSlider implements AfterContentInit, ControlValueAccessor {
387387
registerOnTouched(fn: any) {
388388
this.onTouched = fn;
389389
}
390+
391+
/**
392+
* Implemented as part of ControlValueAccessor
393+
*/
394+
setDisabledState(isDisabled: boolean) {
395+
this.disabled = isDisabled;
396+
}
390397
}
391398

392399
/**

0 commit comments

Comments
 (0)