fix(segment): works w/o NgControl

This commit is contained in:
Max Lynch
2015-10-02 10:57:14 -05:00
parent a98b38b55c
commit b43cb32111

View File

@ -1,4 +1,4 @@
import {View, Renderer, ElementRef, EventEmitter, Host, forwardRef} from 'angular2/angular2'; import {View, Renderer, ElementRef, EventEmitter, Host, forwardRef, Optional} from 'angular2/angular2';
import {Control, NgControl,NgFormControl} from 'angular2/forms'; import {Control, NgControl,NgFormControl} from 'angular2/forms';
import {ControlGroup, ControlDirective} from 'angular2/forms' import {ControlGroup, ControlDirective} from 'angular2/forms'
@ -43,7 +43,7 @@ export class Segment extends Ion {
* @param {Renderer} renderer TODO * @param {Renderer} renderer TODO
*/ */
constructor( constructor(
ngControl: NgControl, @Optional() ngControl: NgControl,
elementRef: ElementRef, elementRef: ElementRef,
ionicConfig: IonicConfig, ionicConfig: IonicConfig,
renderer: Renderer renderer: Renderer
@ -101,6 +101,7 @@ export class Segment extends Ion {
//this.onChange(); //this.onChange();
if(!this.ngControl) { return; }
setTimeout(() => { setTimeout(() => {
this.value = segmentButton.value; this.value = segmentButton.value;
@ -150,13 +151,19 @@ export class SegmentControlValueAccessor {
* @param {Segment} segment TODO * @param {Segment} segment TODO
*/ */
constructor( constructor(
ngControl: NgControl, @Optional() ngControl: NgControl,
renderer: Renderer, renderer: Renderer,
elementRef: ElementRef, elementRef: ElementRef,
segment: Segment segment: Segment
) { ) {
this.onChange = (_) => {}; this.onChange = (_) => {};
this.onTouched = (_) => {}; this.onTouched = (_) => {};
if(!ngControl) {
// They don't want to do anything that works, so we won't do anything that breaks
return;
}
this.ngControl = ngControl; this.ngControl = ngControl;
this.renderer = renderer; this.renderer = renderer;
this.elementRef = elementRef; this.elementRef = elementRef;