@@ -5,10 +5,10 @@ IonicModule
5
5
replace : true ,
6
6
require : [ '^ionTabs' , '^ionTab' ] ,
7
7
template :
8
- '<a ng-class="{\'has-badge\':badge, \'tab-hidden\':isHidden()}" ' +
8
+ '<a ng-class="{\'has-badge\':badge, \'tab-hidden\':isHidden(), \'tab-item-active\': isTabActive() }" ' +
9
9
' ng-disabled="disabled()" class="tab-item">' +
10
10
'<span class="badge {{badgeStyle}}" ng-if="badge">{{badge}}</span>' +
11
- '<i class="icon"></i>' +
11
+ '<i class="icon {{getIcon()}}" ng-if="getIcon() "></i>' +
12
12
'<span class="tab-title" ng-bind-html="title"></span>' +
13
13
'</a>' ,
14
14
scope : {
@@ -57,35 +57,16 @@ IonicModule
57
57
return tabsCtrl . selectedTab ( ) === tabCtrl . $scope ;
58
58
} ;
59
59
60
- $scope . $watch ( "icon" , function ( ) {
61
- styleTab ( ) ;
62
- } ) ;
63
-
64
- $scope . $watch ( "iconOff" , function ( ) {
65
- styleTab ( ) ;
66
- } ) ;
67
-
68
- $scope . $watch ( "iconOn" , function ( ) {
69
- styleTab ( ) ;
70
- } ) ;
71
-
72
- function styleTab ( ) {
73
- // check if tab if active
60
+ $scope . getIcon = function ( ) {
74
61
if ( tabsCtrl . selectedTab ( ) === tabCtrl . $scope ) {
75
- $element . addClass ( 'tab-item-active' ) ;
76
- $element . find ( 'i' ) . removeClass ( $scope . getIconOff ( ) ) ;
77
- $element . find ( 'i' ) . addClass ( $scope . getIconOn ( ) ) ;
62
+ // active
63
+ return $scope . iconOn || $scope . icon ;
78
64
}
79
65
else {
80
- $element . removeClass ( 'tab-item-active' ) ;
81
- $element . find ( 'i' ) . removeClass ( $scope . getIconOn ( ) ) ;
82
- $element . find ( 'i' ) . addClass ( $scope . getIconOff ( ) ) ;
66
+ // inactive
67
+ return $scope . iconOff || $scope . icon ;
83
68
}
84
- }
85
-
86
- $scope . $on ( "tabSelected" , styleTab ) ;
87
-
88
- styleTab ( ) ;
69
+ } ;
89
70
}
90
71
} ;
91
72
} ] ) ;
0 commit comments