mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2026-03-13 10:22:08 +08:00
64 lines
1.9 KiB
JavaScript
64 lines
1.9 KiB
JavaScript
IonicModule
|
|
.directive('ionTabNav', [function() {
|
|
return {
|
|
restrict: 'E',
|
|
replace: true,
|
|
require: ['^ionTabs', '^ionTab'],
|
|
template:
|
|
'<a ng-class="{\'tab-item-active\': isTabActive(), \'has-badge\':badge, \'tab-hidden\':isHidden()}" ' +
|
|
' class="tab-item">' +
|
|
'<span class="badge {{badgeStyle}}" ng-if="badge">{{badge}}</span>' +
|
|
'<i class="icon {{getIconOn()}}" ng-if="getIconOn() && isTabActive()"></i>' +
|
|
'<i class="icon {{getIconOff()}}" ng-if="getIconOff() && !isTabActive()"></i>' +
|
|
'<span class="tab-title" ng-bind-html="title"></span>' +
|
|
'</a>',
|
|
scope: {
|
|
title: '@',
|
|
icon: '@',
|
|
iconOn: '@',
|
|
iconOff: '@',
|
|
badge: '=',
|
|
hidden: '@',
|
|
badgeStyle: '@',
|
|
'class': '@'
|
|
},
|
|
compile: function(element, attr, transclude) {
|
|
return function link($scope, $element, $attrs, ctrls) {
|
|
var tabsCtrl = ctrls[0],
|
|
tabCtrl = ctrls[1];
|
|
|
|
//Remove title attribute so browser-tooltip does not apear
|
|
$element[0].removeAttribute('title');
|
|
|
|
$scope.selectTab = function(e) {
|
|
e.preventDefault();
|
|
tabsCtrl.select(tabCtrl.$scope, true);
|
|
};
|
|
if (!$attrs.ngClick) {
|
|
$element.on('click', function(event) {
|
|
$scope.$apply(function() {
|
|
$scope.selectTab(event);
|
|
});
|
|
});
|
|
}
|
|
|
|
$scope.isHidden = function() {
|
|
if ($attrs.hidden === 'true' || $attrs.hidden === true) return true;
|
|
return false;
|
|
};
|
|
|
|
$scope.getIconOn = function() {
|
|
return $scope.iconOn || $scope.icon;
|
|
};
|
|
$scope.getIconOff = function() {
|
|
return $scope.iconOff || $scope.icon;
|
|
};
|
|
|
|
$scope.isTabActive = function() {
|
|
return tabsCtrl.selectedTab() === tabCtrl.$scope;
|
|
};
|
|
};
|
|
}
|
|
};
|
|
}]);
|