From b43cb321112836de1da414a7b9423ce25b66fefe Mon Sep 17 00:00:00 2001 From: Max Lynch Date: Fri, 2 Oct 2015 10:57:14 -0500 Subject: [PATCH] fix(segment): works w/o NgControl --- ionic/components/segment/segment.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/ionic/components/segment/segment.ts b/ionic/components/segment/segment.ts index 1cbf421e5b..65d9e3b5cb 100644 --- a/ionic/components/segment/segment.ts +++ b/ionic/components/segment/segment.ts @@ -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 {ControlGroup, ControlDirective} from 'angular2/forms' @@ -43,7 +43,7 @@ export class Segment extends Ion { * @param {Renderer} renderer TODO */ constructor( - ngControl: NgControl, + @Optional() ngControl: NgControl, elementRef: ElementRef, ionicConfig: IonicConfig, renderer: Renderer @@ -101,6 +101,7 @@ export class Segment extends Ion { //this.onChange(); + if(!this.ngControl) { return; } setTimeout(() => { this.value = segmentButton.value; @@ -150,13 +151,19 @@ export class SegmentControlValueAccessor { * @param {Segment} segment TODO */ constructor( - ngControl: NgControl, + @Optional() ngControl: NgControl, renderer: Renderer, elementRef: ElementRef, segment: Segment ) { this.onChange = (_) => {}; 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.renderer = renderer; this.elementRef = elementRef;