ion-tabs 是有一组页面选项卡组成的选项卡栏。可以通过点击选项来切换页面。
对于 iOS,它会出现在屏幕的底部,Android会出现在屏幕的顶部(导航栏下面)。
<html ng-app="ionicApp"> <head> <meta charset="utf-8"> <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"> <title>芝麻教程(web3.xin)</title> <link href="//cdn.bootcss.com/ionic/1.3.1/css/ionic.min.css" rel="stylesheet"> <script src="//cdn.bootcss.com/ionic/1.3.1/js/ionic.bundle.js"></script> <script type="text/javascript"> angular.module('ionicApp', ['ionic']) .controller('RootCtrl', function($scope) { $scope.onControllerChanged = function(oldController, oldIndex, newController, newIndex) { console.log('Controller changed', oldController, oldIndex, newController, newIndex); console.log(arguments); }; }) .controller('HomeCtrl', function($scope, $timeout, $ionicModal, $ionicActionSheet) { $scope.items = []; $ionicModal.fromTemplateUrl('newTask.html', function(modal) { $scope.settingsModal = modal; }); var removeItem = function(item, button) { $ionicActionSheet.show({ buttons: [], destructiveText: 'Delete Task', cancelText: 'Cancel', cancel: function() { return true; }, destructiveButtonClicked: function() { $scope.items.splice($scope.items.indexOf(item), 1); return true; } }); }; var completeItem = function(item, button) { item.isCompleted = true; }; $scope.onReorder = function(el, start, end) { ionic.Utils.arrayMove($scope.items, start, end); }; $scope.onRefresh = function() { console.log('ON REFRESH'); $timeout(function() { $scope.$broadcast('scroll.refreshComplete'); }, 1000); } $scope.removeItem = function(item) { removeItem(item); }; $scope.newTask = function() { $scope.settingsModal.show(); }; // Create the items for(var i = 0; i < 25; i++) { $scope.items.push({ title: 'Task ' + (i + 1), buttons: [{ text: 'Done', type: 'button-success', onButtonClicked: completeItem, }, { text: 'Delete', type: 'button-danger', onButtonClicked: removeItem, }] }); } }) .controller('TaskCtrl', function($scope) { $scope.close = function() { $scope.modal.hide(); } }); </script> </head> <body ng-controller="RootCtrl"> <ion-tabs class="tabs-icon-only tabs-positive"> <ion-tab title="Home" icon-on="ion-ios7-filing" icon-off="ion-ios7-filing-outline" ng-controller="HomeCtrl"> <ion-header-bar class="bar-positive"> <button class="button button-clear" ng-click="newTask()">New</button> <h1 class="title">Tasks</h1> </ion-header-bar> <ion-content has-tabs="true" on-refresh="onRefresh()"> <ion-refresher></ion-refresher> <ion-list scroll="false" on-refresh="onRefresh()" s-editing="isEditingItems" animation="fade-out" delete-icon="icon ion-minus-circled"> <ion-item ng-repeat="item in items" item="item" buttons="item.buttons" can-delete="true" can-swipe="true" on-delete="deleteItem(item)" ng-class="{completed: item.isCompleted}"> {{item.title}} <i class="{{item.icon}}"></i> </ion-item> </ion-list> </ion-content> </ion-tab> <ion-tab title="About" icon-on="icon ion-ios7-clock" icon-off="icon ion-ios7-clock-outline"> <header class="bar bar-header bar-positive"> <h1 class="title">Deadlines</h1> </header> <ion-content has-header="true"> <h1>Deadlines</h1> </ion-content> </ion-tab> <ion-tab title="Settings" icon-on="icon ion-ios7-gear" icon-off="icon ion-ios7-gear-outline"> <header class="bar bar-header bar-positive"> <h1 class="title">Settings</h1> </header> <ion-content has-header="true"> <h1>Settings</h1> </ion-content> </ion-tab> </ion-tabs> <script id="newTask.html" type="text/ng-template"> <div id="task-view" class="modal slide-in-up" ng-controller="TaskCtrl"> <header class="bar bar-header bar-secondary"> <h1 class="title">New Task</h1> <button class="button button-clear button-primary" ng-click="close()">Done</button> </header> <ion-content class="padding has-header"> <input type="text" placeholder="I need to do this..."> </ion-content> </div> </script> </body> </html>
属性 | 类型 | 详情 |
---|---|---|
delegate-handle
(可选)
|
字符串
|
该句柄用 |
隶属于ionTabs
包含一个选项卡内容。该内容仅存在于被选中的给定选项卡中。
每个ionTab都有自己的浏览历史。
<ion-tab title="Tab!" icon="my-icon" href="#/tab/tab-link" on-select="onTabSelected()" on-deselect="onTabDeselected()"> </ion-tab>
属性 | 类型 | 详情 |
---|---|---|
title |
字符串
|
选项卡的标题。 |
href
(可选)
|
字符串
|
但触碰的时候,该选项卡将会跳转的的链接。 |
icon
(可选)
|
字符串
|
选项卡的图标。如果给定值,它将成为ion-on和ion-off的默认值。 |
icon-on
(可选)
|
字符串
|
被选中标签的图标。 |
icon-off
(可选)
|
字符串
|
没被选中标签的图标。 |
badge
(可选)
|
表达式
|
选项卡上的徽章(通常是一个数字)。 |
badge-style
(可选)
|
表达式
|
选项卡上微章的样式(例,tabs-positive )。 |
on-select
(可选)
|
表达式
|
选项卡被选中时触发。 |
on-deselect
(可选)
|
表达式
|
选项卡取消选中时触发。 |
ng-click
(可选)
|
表达式
|
通常,点击时选项卡会被选中。如果设置了 ng-Click,它将不会被选中。 你可以用$ionicTabsDelegate.select()来指定切换标签。 |
授权控制ionTabs指令。
该方法直接调用$ionicTabsDelegate服务,控制所有ionTabs指令。用$getByHandle方法控制具体的ionTabs实例。
<body ng-controller="MyCtrl"> <ion-tabs> <ion-tab title="Tab 1"> 你好,标签1! <button ng-click="selectTabWithIndex(1)">选择标签2</button> </ion-tab> <ion-tab title="Tab 2">你好标签2!</ion-tab> </ion-tabs> </body>
function MyCtrl($scope, $ionicTabsDelegate) { $scope.selectTabWithIndex = function(index) { $ionicTabsDelegate.select(index); } }
select(index, [shouldChangeHistory])
选择标签来匹配给定的索引。
参数 | 类型 | 详情 |
---|---|---|
index |
数值
|
选择标签的索引。 |
shouldChangeHistory
(可选)
|
布尔值
|
此选项是否应该加载这个标签的浏览历史(如果存在),并使用,或仅加载默认页面。默认为false。提示:如果一个 |
selectedIndex()
返回值:
数值, 被选中标签的索引,如 -1。
$getByHandle(handle)
参数 | 类型 | 详情 |
---|---|---|
handle |
字符串
|
例如:
$ionicTabsDelegate.$getByHandle('my-handle').select(0);