diff --git a/src/components/searchbar/test/basic/pages/root-page/root-page.html b/src/components/searchbar/test/basic/pages/root-page/root-page.html
index d05c1fce6e..19d9f2a6ad 100644
--- a/src/components/searchbar/test/basic/pages/root-page/root-page.html
+++ b/src/components/searchbar/test/basic/pages/root-page/root-page.html
@@ -3,7 +3,7 @@
Search - Animated
-
+
defaultSearch: {{ defaultSearch }}
diff --git a/src/components/segment/segment-button.ts b/src/components/segment/segment-button.ts
index 161bf0b482..8efdf9341b 100644
--- a/src/components/segment/segment-button.ts
+++ b/src/components/segment/segment-button.ts
@@ -46,11 +46,16 @@ import { isPresent, isTrueProperty } from '../../util/util';
host: {
'tappable': '',
'class': 'segment-button',
- 'role': 'button'
+ 'role': 'button',
+ '[class.segment-button-disabled]': '_disabled',
+ '[class.segment-activated]': 'isActive',
+ '[attr.aria-pressed]': 'isActive'
},
encapsulation: ViewEncapsulation.None,
})
export class SegmentButton {
+
+ isActive: boolean = false;
_disabled: boolean = false;
/**
@@ -63,8 +68,6 @@ export class SegmentButton {
*/
@Output() ionSelect: EventEmitter = new EventEmitter();
- constructor(private _renderer: Renderer, private _elementRef: ElementRef) {}
-
/**
* @input {boolean} If true, the user cannot interact with this element.
*/
@@ -75,15 +78,9 @@ export class SegmentButton {
set disabled(val: boolean) {
this._disabled = isTrueProperty(val);
- this._setElementClass('segment-button-disabled', this._disabled);
}
- /**
- * @hidden
- */
- _setElementClass(cssClass: string, shouldAdd: boolean) {
- this._renderer.setElementClass(this._elementRef.nativeElement, cssClass, shouldAdd);
- }
+ constructor(private _renderer: Renderer, private _elementRef: ElementRef) {}
/**
* @hidden
@@ -104,12 +101,4 @@ export class SegmentButton {
}
}
- /**
- * @hidden
- */
- set isActive(isActive: any) {
- this._renderer.setElementClass(this._elementRef.nativeElement, 'segment-activated', isActive);
- this._renderer.setElementAttribute(this._elementRef.nativeElement, 'aria-pressed', isActive);
- }
-
}
diff --git a/src/components/segment/segment.ios.scss b/src/components/segment/segment.ios.scss
index 3f3e9e6f75..0d538c851c 100644
--- a/src/components/segment/segment.ios.scss
+++ b/src/components/segment/segment.ios.scss
@@ -129,6 +129,11 @@ $segment-button-ios-toolbar-icon-line-height: 2.4rem !default;
border-radius: 0 $segment-button-ios-border-radius $segment-button-ios-border-radius 0;
}
}
+.segment-ios.segment-disabled {
+ opacity: .4;
+
+ pointer-events: none;
+}
.segment-ios .segment-button-disabled {
color: rgba($segment-button-ios-background-color-activated, $segment-button-ios-opacity-disabled);
diff --git a/src/components/segment/segment.md.scss b/src/components/segment/segment.md.scss
index 7444bfcb65..94ca648d18 100644
--- a/src/components/segment/segment.md.scss
+++ b/src/components/segment/segment.md.scss
@@ -77,6 +77,7 @@ $segment-button-md-icon-line-height: $segment-button-md-line-height !d
}
}
+.segment-md.segment-disabled,
.segment-md .segment-button-disabled {
opacity: $segment-button-md-opacity-disabled;
diff --git a/src/components/segment/segment.ts b/src/components/segment/segment.ts
index 0990f1bcb8..e0cd91c1f2 100644
--- a/src/components/segment/segment.ts
+++ b/src/components/segment/segment.ts
@@ -62,7 +62,10 @@ import { SegmentButton } from './segment-button';
* @see [Angular 2 Forms](http://learnangular2.com/forms/)
*/
@Directive({
- selector: 'ion-segment'
+ selector: 'ion-segment',
+ host: {
+ '[class.segment-disabled]': '_disabled'
+ }
})
export class Segment extends BaseInput {
diff --git a/src/components/segment/segment.wp.scss b/src/components/segment/segment.wp.scss
index 9903e06dd7..9d4a8c4c44 100644
--- a/src/components/segment/segment.wp.scss
+++ b/src/components/segment/segment.wp.scss
@@ -75,6 +75,7 @@ $segment-button-wp-buttons-justify-content: flex-start !default;
}
}
+.segment-wp.segment-disabled,
.segment-wp .segment-button-disabled {
opacity: $segment-button-wp-opacity-disabled;
diff --git a/src/components/segment/test/basic/pages/home-page/home-page.html b/src/components/segment/test/basic/pages/home-page/home-page.html
index fe333557ed..1e96fea577 100644
--- a/src/components/segment/test/basic/pages/home-page/home-page.html
+++ b/src/components/segment/test/basic/pages/home-page/home-page.html
@@ -33,7 +33,7 @@
Active
-
+
Disabled
@@ -44,20 +44,20 @@
Map mode: {{myForm.controls.mapStyle.value}} -
-
+
Standard
-
+
Hybrid
-
+
Satellite
Model style: NgModel
-
+
Model A
@@ -67,12 +67,12 @@
Model C
-
+
Model D
Model Style: Model {{ modelStyle }}
-
+
@@ -80,7 +80,9 @@
-
+
+
+
@@ -112,7 +114,7 @@
-
+
Default
diff --git a/src/components/segment/test/basic/pages/home-page/home-page.ts b/src/components/segment/test/basic/pages/home-page/home-page.ts
index 6f6728025e..a1f102c2f3 100644
--- a/src/components/segment/test/basic/pages/home-page/home-page.ts
+++ b/src/components/segment/test/basic/pages/home-page/home-page.ts
@@ -11,7 +11,9 @@ export class HomePage {
modelStyle: string = 'B';
appType: string = 'free';
icons: string = 'camera';
- isDisabled: boolean = true;
+ isDisabledB: boolean = true;
+ isDisabledS: boolean = false;
+
myForm: any;
constructor(fb: FormBuilder) {
@@ -20,8 +22,12 @@ export class HomePage {
});
}
- toggleDisabled() {
- this.isDisabled = !this.isDisabled;
+ toggleBDisabled() {
+ this.isDisabledB = !this.isDisabledB;
+ }
+
+ toggleSDisabled() {
+ this.isDisabledS = !this.isDisabledS;
}
onSegmentChanged(segmentButton: SegmentButton) {