fix(checkbox): Fix native checked is not true when MdCheckbox initial checked value is true (#2055)

* Fix checked is not true when MdCheckbox initial checked value is true

* Add test

* fix lint
This commit is contained in:
tinayuangao
2016-12-02 13:36:13 -08:00
committed by GitHub
parent b07aa7e382
commit 3fd311707d
2 changed files with 14 additions and 1 deletions
+9
View File
@@ -100,6 +100,15 @@ describe('MdCheckbox', () => {
expect(inputElement.indeterminate).toBe(false);
});
it('should change native element checked when check programmatically', () => {
expect(inputElement.checked).toBe(false);
checkboxInstance.checked = true;
fixture.detectChanges();
expect(inputElement.checked).toBe(true);
});
it('should toggle checked state on click', () => {
expect(checkboxInstance.checked).toBe(false);
+5 -1
View File
@@ -1,4 +1,5 @@
import {
ChangeDetectorRef,
ChangeDetectionStrategy,
Component,
ElementRef,
@@ -156,7 +157,9 @@ export class MdCheckbox implements ControlValueAccessor {
hasFocus: boolean = false;
constructor(private _renderer: Renderer, private _elementRef: ElementRef) {
constructor(private _renderer: Renderer,
private _elementRef: ElementRef,
private _changeDetectorRef: ChangeDetectorRef) {
this.color = 'accent';
}
@@ -174,6 +177,7 @@ export class MdCheckbox implements ControlValueAccessor {
this._checked = checked;
this._transitionCheckState(
this._checked ? TransitionCheckState.Checked : TransitionCheckState.Unchecked);
this._changeDetectorRef.markForCheck();
}
}