From 2129b7a7f9567480ab6e5d347ae4aa9fa02c323d Mon Sep 17 00:00:00 2001 From: mmalerba Date: Fri, 29 Sep 2017 13:14:42 -0700 Subject: [PATCH] fix(datepicker): make sure _datepickerInput exists before accessing its (#7033) * fix(datepicker): make sure _datepickerInput exists before accessing its disabled property. * add test --- src/lib/datepicker/datepicker.spec.ts | 4 ++++ src/lib/datepicker/datepicker.ts | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/lib/datepicker/datepicker.spec.ts b/src/lib/datepicker/datepicker.spec.ts index 3f87fc50749..c9d0ff8768e 100644 --- a/src/lib/datepicker/datepicker.spec.ts +++ b/src/lib/datepicker/datepicker.spec.ts @@ -304,6 +304,10 @@ describe('MatDatepicker', () => { fixture.detectChanges(); })); + it('should not throw when accessing disabled property', () => { + expect(() => testComponent.datepicker.disabled).not.toThrow(); + }); + it('should throw when opened with no registered inputs', async(() => { expect(() => testComponent.datepicker.open()).toThrow(); })); diff --git a/src/lib/datepicker/datepicker.ts b/src/lib/datepicker/datepicker.ts index cc25a957df1..cbd4c0da8cf 100644 --- a/src/lib/datepicker/datepicker.ts +++ b/src/lib/datepicker/datepicker.ts @@ -147,7 +147,8 @@ export class MatDatepicker implements OnDestroy { /** Whether the datepicker pop-up should be disabled. */ @Input() get disabled() { - return this._disabled === undefined ? this._datepickerInput.disabled : this._disabled; + return this._disabled === undefined && this._datepickerInput ? + this._datepickerInput.disabled : this._disabled; } set disabled(value: any) { const newValue = coerceBooleanProperty(value);