1- import { ElementRef , Directive } from 'angular2/angular2' ;
2- import { Renderer } from 'angular2/src/render/api' ;
1+ import { Directive } from 'angular2/angular2' ;
32import { ControlDirective } from './control_directive' ;
43import { ControlValueAccessor } from './control_value_accessor' ;
54
@@ -18,23 +17,28 @@ import {ControlValueAccessor} from './control_value_accessor';
1817 selector :
1918 'input[type=checkbox][ng-control],input[type=checkbox][ng-form-control],input[type=checkbox][ng-model]' ,
2019 hostListeners : { 'change' : 'onChange($event.target.checked)' , 'blur' : 'onTouched()' } ,
21- hostProperties : { 'checked' : 'checked' }
20+ hostProperties : {
21+ 'checked' : 'checked' ,
22+ 'cd.control?.untouched == true' : 'class.ng-untouched' ,
23+ 'cd.control?.touched == true' : 'class.ng-touched' ,
24+ 'cd.control?.pristine == true' : 'class.ng-pristine' ,
25+ 'cd.control?.dirty == true' : 'class.ng-dirty' ,
26+ 'cd.control?.valid == true' : 'class.ng-valid' ,
27+ 'cd.control?.valid == false' : 'class.ng-invalid'
28+ }
2229} )
2330export class CheckboxControlValueAccessor implements ControlValueAccessor {
2431 checked : boolean ;
2532 onChange : Function ;
2633 onTouched : Function ;
2734
28- constructor ( cd : ControlDirective , private _elementRef : ElementRef , private _renderer : Renderer ) {
35+ constructor ( private cd : ControlDirective ) {
2936 this . onChange = ( _ ) => { } ;
3037 this . onTouched = ( _ ) => { } ;
3138 cd . valueAccessor = this ;
3239 }
3340
34- writeValue ( value ) {
35- this . _renderer . setElementProperty ( this . _elementRef . parentView . render ,
36- this . _elementRef . boundElementIndex , 'checked' , value )
37- }
41+ writeValue ( value ) { this . checked = value ; }
3842
3943 registerOnChange ( fn ) : void { this . onChange = fn ; }
4044 registerOnTouched ( fn ) : void { this . onTouched = fn ; }
0 commit comments