diff --git a/src/components/sidenav/sidenav.spec.ts b/src/components/sidenav/sidenav.spec.ts
index f63429e3443f..be9b8385d006 100644
--- a/src/components/sidenav/sidenav.spec.ts
+++ b/src/components/sidenav/sidenav.spec.ts
@@ -238,6 +238,45 @@ export function main() {
}).toThrow();
}));
});
+
+ describe('attributes', () => {
+
+ it('should correctly parse opened="false"', fakeAsyncAdaptor(() => {
+ let newBuilder = builder.overrideTemplate(BasicTestApp, `
+
+
+ Closed Sidenav.
+
+ `);
+
+ let fixture = createFixture(BasicTestApp, newBuilder, template, style);
+ fixture.detectChanges();
+
+ let sidenavEl = fixture.debugElement.query(By.css('md-sidenav')).nativeElement;
+
+ expect(sidenavEl.classList).toContain('md-sidenav-closed');
+ expect(sidenavEl.classList).not.toContain('md-sidenav-opened');
+ }));
+
+ it('should correctly parse opened="true"', fakeAsyncAdaptor(() => {
+ let newBuilder = builder.overrideTemplate(BasicTestApp, `
+
+
+ Closed Sidenav.
+
+ `);
+
+ let fixture = createFixture(BasicTestApp, newBuilder, template, style);
+ fixture.detectChanges();
+
+ let sidenavEl = fixture.debugElement.query(By.css('md-sidenav')).nativeElement;
+
+ expect(sidenavEl.classList).not.toContain('md-sidenav-closed');
+ expect(sidenavEl.classList).toContain('md-sidenav-opened');
+ }));
+
+ });
+
});
}
diff --git a/src/components/sidenav/sidenav.ts b/src/components/sidenav/sidenav.ts
index 9007cd2b5c71..ac579ab1e8e5 100644
--- a/src/components/sidenav/sidenav.ts
+++ b/src/components/sidenav/sidenav.ts
@@ -18,6 +18,7 @@ import {
import {Dir} from '../../core/rtl/dir';
import {PromiseCompleter} from '../../core/async/promise-completer';
import {MdError} from '../../core/errors/error';
+import { BooleanFieldValue } from '../../core/annotations/field-value';
/**
@@ -50,7 +51,7 @@ export class MdSidenav {
@Input() mode: 'over' | 'push' | 'side' = 'over';
/** Whether the sidenav is opened. */
- @Input('opened') private _opened: boolean = false;
+ @Input('opened') @BooleanFieldValue() private _opened: boolean = false;
/** Event emitted when the sidenav is being opened. Use this to synchronize animations. */
@Output('open-start') onOpenStart = new EventEmitter();