cleanup(forms): value accessors inject NgControl only from self
This commit is contained in:
		
							parent
							
								
									469afda53e
								
							
						
					
					
						commit
						45b10a1f0f
					
				| @ -1,6 +1,7 @@ | |||||||
| import {Renderer} from 'angular2/render'; | import {Renderer} from 'angular2/render'; | ||||||
| import {Directive} from 'angular2/annotations'; | import {Directive} from 'angular2/annotations'; | ||||||
| import {ElementRef} from 'angular2/core'; | import {ElementRef} from 'angular2/core'; | ||||||
|  | import {Self} from 'angular2/di'; | ||||||
| 
 | 
 | ||||||
| import {NgControl} from './ng_control'; | import {NgControl} from './ng_control'; | ||||||
| import {ControlValueAccessor} from './control_value_accessor'; | import {ControlValueAccessor} from './control_value_accessor'; | ||||||
| @ -30,10 +31,12 @@ import {setProperty} from './shared'; | |||||||
|   } |   } | ||||||
| }) | }) | ||||||
| export class CheckboxControlValueAccessor implements ControlValueAccessor { | export class CheckboxControlValueAccessor implements ControlValueAccessor { | ||||||
|  |   private cd: NgControl; | ||||||
|   onChange = (_) => {}; |   onChange = (_) => {}; | ||||||
|   onTouched = () => {}; |   onTouched = () => {}; | ||||||
| 
 | 
 | ||||||
|   constructor(private cd: NgControl, private renderer: Renderer, private elementRef: ElementRef) { |   constructor(@Self() cd: NgControl, private renderer: Renderer, private elementRef: ElementRef) { | ||||||
|  |     this.cd = cd; | ||||||
|     cd.valueAccessor = this; |     cd.valueAccessor = this; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,6 +1,7 @@ | |||||||
| import {Renderer} from 'angular2/render'; | import {Renderer} from 'angular2/render'; | ||||||
| import {Directive} from 'angular2/annotations'; | import {Directive} from 'angular2/annotations'; | ||||||
| import {ElementRef} from 'angular2/core'; | import {ElementRef} from 'angular2/core'; | ||||||
|  | import {Self} from 'angular2/di'; | ||||||
| import {NgControl} from './ng_control'; | import {NgControl} from './ng_control'; | ||||||
| import {ControlValueAccessor} from './control_value_accessor'; | import {ControlValueAccessor} from './control_value_accessor'; | ||||||
| import {isBlank, isPresent} from 'angular2/src/facade/lang'; | import {isBlank, isPresent} from 'angular2/src/facade/lang'; | ||||||
| @ -31,10 +32,12 @@ import {setProperty} from './shared'; | |||||||
|   } |   } | ||||||
| }) | }) | ||||||
| export class DefaultValueAccessor implements ControlValueAccessor { | export class DefaultValueAccessor implements ControlValueAccessor { | ||||||
|  |   private cd: NgControl; | ||||||
|   onChange = (_) => {}; |   onChange = (_) => {}; | ||||||
|   onTouched = () => {}; |   onTouched = () => {}; | ||||||
| 
 | 
 | ||||||
|   constructor(private cd: NgControl, private renderer: Renderer, private elementRef: ElementRef) { |   constructor(@Self() cd: NgControl, private renderer: Renderer, private elementRef: ElementRef) { | ||||||
|  |     this.cd = cd; | ||||||
|     cd.valueAccessor = this; |     cd.valueAccessor = this; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,5 +1,6 @@ | |||||||
| import {Renderer} from 'angular2/render'; | import {Renderer} from 'angular2/render'; | ||||||
| import {ElementRef, QueryList} from 'angular2/core'; | import {ElementRef, QueryList} from 'angular2/core'; | ||||||
|  | import {Self} from 'angular2/di'; | ||||||
| import {Query, Directive} from 'angular2/annotations'; | import {Query, Directive} from 'angular2/annotations'; | ||||||
| 
 | 
 | ||||||
| import {NgControl} from './ng_control'; | import {NgControl} from './ng_control'; | ||||||
| @ -40,14 +41,15 @@ export class NgSelectOption { | |||||||
|   } |   } | ||||||
| }) | }) | ||||||
| export class SelectControlValueAccessor implements ControlValueAccessor { | export class SelectControlValueAccessor implements ControlValueAccessor { | ||||||
|  |   private cd: NgControl; | ||||||
|   value: string; |   value: string; | ||||||
|   onChange = (_) => {}; |   onChange = (_) => {}; | ||||||
|   onTouched = () => {}; |   onTouched = () => {}; | ||||||
| 
 | 
 | ||||||
|   constructor(private cd: NgControl, private renderer: Renderer, private elementRef: ElementRef, |   constructor(@Self() cd: NgControl, private renderer: Renderer, private elementRef: ElementRef, | ||||||
|               @Query(NgSelectOption, {descendants: true}) query: QueryList<NgSelectOption>) { |               @Query(NgSelectOption, {descendants: true}) query: QueryList<NgSelectOption>) { | ||||||
|  |     this.cd = cd; | ||||||
|     cd.valueAccessor = this; |     cd.valueAccessor = this; | ||||||
| 
 |  | ||||||
|     this._updateValueWhenListOfOptionsChanges(query); |     this._updateValueWhenListOfOptionsChanges(query); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user