ion-header-bar(頭部 頁眉)
在內容頂部添加一個固定header欄。css
用法
<ion-header-bar align-title="left" class="bar-positive">
<div class="buttons">
<button class="button" ng-click="doSomething()">左側按鈕</button>
</div>
<h1 class="title">Title!</h1>
<div class="buttons">
<button class="button">右側按鈕</button>
</div>
</ion-header-bar>
<ion-content>
一些內容!
</ion-content>
bar-subheader
若是應用'bar-subheader'類,就能夠成爲一個subheader(在下面)。 查看header CSS文檔。html
<div class="bar bar-header">
<h1 class="title">Header</h1>
</div>
<div class="bar bar-subheader">
<h2 class="title">Sub Header</h2>
</div>
API
屬性 |
類型 |
詳情 |
align-title
(可選)
|
字符串 |
標題對齊的位置。可用: 'left', 'right', or 'center'。默認爲 'center'。android |
ion-footer-bar (頁腳 底部)
在內容底部添加一個固定的footer欄。ios
若是應用'bar-subfooter'類,就成了一個subfooter(在上面)。查看footer CSS 文檔。git
用法
<ion-content>
一些內容!
</ion-content>
<ion-footer-bar align-title="left" class="bar-assertive">
<div class="buttons">
<button class="button">左側按鈕</button>
</div>
<h1 class="title">Title!</h1>
<div class="buttons" ng-click="doSomething()">
<button class="button">右側按鈕</button>
</div>
</ion-footer-bar>
API
屬性 |
類型 |
詳情 |
align-title
(可選)
|
字符串 |
標題對齊的位置。可選: 'left', 'right', 或 'center'。 默認爲 'center'。angularjs |
ionContent指令提供一個易用的內容區域,該區域能夠用Ionic的自定義滾動視圖進行配置,或瀏覽器內置的溢出滾動。github
在大多數狀況下,咱們建議使用Ionic的定製滾動功能,有時(出於性能緣由)僅用瀏覽器原生的溢出滾動就足夠了,所以我能夠輕鬆地在設置了Ionic滾動和溢出滾動間切換。web
你能夠用ionRefresher
指令實現拉動刷新,並能夠用ionInfiniteScroll
指令實現無限滾動。數據庫
用法
<ion-content
[delegate-handle=""]
[padding=""]
[scroll=""]
[overflow-scroll=""]
[has-bouncing=""]
[on-scroll=""]
[on-scroll-complete=""]>
...
</ion-content>
API
屬性 |
類型 |
詳情 |
delegate-handle
(可選)
|
字符串 |
該句柄用於標識帶有$ionicScrollDelegate 的滾動視圖。express |
padding
(可選)
|
布爾值 |
是否在內容上添加內填充。在iOS上默認爲true,在Android上爲false。 |
scroll
(可選)
|
布爾值 |
是否容許內容滾動。默認爲true。 |
overflow-scroll
(可選)
|
布爾值 |
是否用溢出滾動代替Ionic滾動。 |
has-bouncing
(可選)
|
布爾值 |
是否容許內容滾動反彈到邊緣。iOS上默認爲true,Android上默認爲false。 |
on-scroll
(可選)
|
表達式 |
當內容滾動時表現的評估。 |
on-scroll-complete
(可選)
|
表達式 |
一個滾動動做完成時表現的評估。 |
容許你添加下拉刷新滾動視圖。
把它做爲ionContent
或 ionScroll
元素的第一個子元素。
當刷新完成時,從你的控制器中廣播($broadcast
)出 'scroll.refreshComplete'事件。
用法
<ion-content ng-controller="MyController">
<ion-refresher
pulling-text="下拉刷新..."
on-refresh="doRefresh()">
</ion-refresher>
<ion-list>
<ion-item ng-repeat="item in items"></ion-item>
</ion-list>
</ion-content>
angular.module('testApp', ['ionic'])
.controller('MyController', function($scope, $http) {
$scope.items = [1,2,3];
$scope.doRefresh = function() {
$http.get('/new-items')
.success(function(newItems) {
$scope.items = newItems;
})
.finally(function() {
// 中止廣播ion-refresher
$scope.$broadcast('scroll.refreshComplete');
});
};
});
API
屬性 |
類型 |
詳情 |
on-refresh
(可選)
|
表達式 |
當用戶下拉到必定程度而後開始刷新時觸發。 |
on-pulling
(可選)
|
表達式 |
當用戶開始下來刷新時觸發。 |
pulling-icon
(可選)
|
字符串 |
當用戶下拉時顯示的圖標。默認: 'ion-arrow-down-c'。 |
pulling-text
(可選)
|
字符串 |
當用戶下拉時顯示的文字。 |
refreshing-icon
(可選)
|
字符串 |
用戶刷新後顯示的圖標。 |
refreshing-text
(可選)
|
字符串 |
用戶刷新後顯示的文字。 |
ion-pane
一個簡單的適應內容的容器,無不良影響。在一個元素上添加 'pane'。
用法
<ion-pane>
...
</ion-pane>
建立一個包含全部內容的可滾動容器。
用法
<ion-scroll
[delegate-handle=""]
[direction=""]
[paging=""]
[on-refresh=""]
[on-scroll=""]
[scrollbar-x=""]
[scrollbar-y=""]
[zooming=""]
[min-zoom=""]
[max-zoom=""]>
...
</ion-scroll>
API
屬性 |
類型 |
詳情 |
delegate-handle
(可選)
|
字符串 |
該句柄利用$ionicScrollDelegate 指定滾動視圖。 |
direction
(可選)
|
字符串 |
滾動的方向。 'x' 或 'y'。 默認 'y'。 |
paging
(可選)
|
布爾值 |
分頁是否滾動。 |
on-refresh
(可選)
|
表達式 |
調用下拉刷新, 由ionRefresher 觸發。 |
on-scroll
(可選)
|
表達式 |
當用戶滾動時觸發。 |
scrollbar-x
(可選)
|
布爾值 |
是否顯示水平滾動條。默認爲false。 |
scrollbar-y
(可選)
|
布爾值 |
是否顯示垂直滾動條。默認爲true。 |
zooming
(可選)
|
布爾值 |
是否支持雙指縮放。 |
min-zoom
(可選)
|
整數 |
容許的最小縮放量(默認爲0.5) |
max-zoom
(可選)
|
整數 |
容許的最大縮放量(默認爲3) |
當用戶到達頁腳或頁腳附近時,ionInfiniteScroll指令容許你調用一個函數 。
當用戶滾動的距離
超出底部的內容時,就會觸發你指定的on-infinite
。
用法
<ion-content ng-controller="MyController">
<ion-infinite-scroll
on-infinite="loadMore()"
distance="1%">
</ion-infinite-scroll>
</ion-content>
function MyController($scope, $http) {
$scope.items = [];
$scope.loadMore = function() {
$http.get('/more-items').success(function(items) {
useItems(items);
$scope.$broadcast('scroll.infiniteScrollComplete');
});
};
$scope.$on('stateChangeSuccess', function() {
$scope.loadMore();
});
}
當沒有更多數據加載時,就能夠用一個簡單的方法阻止無限滾動,那就是angular的ng-if
指令:
<ion-infinite-scroll
ng-if="moreDataCanBeLoaded()"
icon="ion-loading-c"
on-infinite="loadMoreData()">
</ion-infinite-scroll>
API
屬性 |
類型 |
詳情 |
on-infinite |
表達式 |
當滾動到底部時觸發的時間。 |
distance
(可選)
|
字符串 |
從底部滾動到觸發on-infinite表達式的距離。默認: 1%。 |
icon
(可選)
|
字符串 |
當加載時顯示的圖標。默認: 'ion-loading-d'。 |
受權控制滾動視圖(經過ionContent
和 ionScroll
指令建立)。
該方法直接被$ionicScrollDelegate服務觸發,來控制全部滾動視圖。用 $getByHandle方法控制特定的滾動視圖。
用法
<body ng-controller="MainCtrl">
<ion-content>
<button ng-click="scrollTop()">滾動到頂部!</button>
</ion-content>
</body>
function MainCtrl($scope, $ionicScrollDelegate) {
$scope.scrollTop = function() {
$ionicScrollDelegate.scrollTop();
};
}
高級用法的例子,用帶有兩個滾動區域的delegate-handle
來特殊控制。
<body ng-controller="MainCtrl">
<ion-content delegate-handle="mainScroll">
<button ng-click="scrollMainToTop()">
滾動內容到頂部!
</button>
<ion-scroll delegate-handle="small" style="height: 100px;">
<button ng-click="scrollSmallToTop()">
滾動小區域到頂部!
</button>
</ion-scroll>
</ion-content>
</body>
function MainCtrl($scope, $ionicScrollDelegate) {
$scope.scrollMainToTop = function() {
$ionicScrollDelegate.$getByHandle('mainScroll').scrollTop();
};
$scope.scrollSmallToTop = function() {
$ionicScrollDelegate.$getByHandle('small').scrollTop();
};
}
方法
resize()
告訴滾動視圖從新計算它的容器大小。
scrollTop([shouldAnimate])
參數 |
類型 |
詳情 |
shouldAnimate
(可選)
|
布爾值 |
是否應用滾動動畫。 |
scrollBottom([shouldAnimate])
參數 |
類型 |
詳情 |
shouldAnimate
(可選)
|
布爾值 |
是否應用滾動動畫。 |
scrollTo(left, top, [shouldAnimate])
參數 |
類型 |
詳情 |
left |
數值 |
水平滾動的值。 |
top |
數值 |
垂直滾動的值。 |
shouldAnimate
(可選)
|
布爾值 |
是否應用滾動動畫。 |
scrollBy(left, top, [shouldAnimate])
參數 |
類型 |
詳情 |
left |
數值 |
水平滾動的偏移量。 |
top |
數值 |
垂直滾動的偏移量。 |
shouldAnimate
(可選)
|
布爾值 |
是否應用滾動動畫。 |
getScrollPosition()
- 返回:
對象
滾動到該視圖的位置,具備一下屬性:
{數值}
left
從左側到用戶已滾動的距離(開始爲 0)。
{數值}
top
從頂部到用戶已滾動的距離 (開始爲 0)。
anchorScroll([shouldAnimate])
告訴滾動視圖用一個帶有id的滾動元素匹配window.location.hash。
若是沒有匹配到元素,它會滾動到頂部。
參數 |
類型 |
詳情 |
shouldAnimate
(可選)
|
布爾值 |
是否應用滾動動畫。 |
getScrollView()
rememberScrollPosition(id)
當滾動視圖被銷燬時(用戶離開頁面),頁面最後的滾動位置會被指定的索引保存。
注意:根據一個ion-nav-view將頁面和一個視圖關聯,rememberScrollPosition自動保存它們的滾動。
相關方法:scrollToRememberedPosition, forgetScrollPosition (低)。
在下面的例子中,ion-scroll元素的滾動位置會被保留, 甚至當用戶切換開關時。
<ion-toggle ng-model="shouldShowScrollView"></ion-toggle> <ion-scroll delegate-handle="myScroll" ng-if="shouldShowScrollView"> <div ng-controller="ScrollCtrl"> <ion-list> <ion-item ng-repeat="i in items">{{i}}</ion-item> </ion-list> </div> </ion-scroll>
function ScrollCtrl($scope, $ionicScrollDelegate) { var delegate = $ionicScrollDelegate.$getByHandle('myScroll'); // 這裏能夠聽任何惟一的ID。重點是:要在每次從新建立控制器時 // 咱們要加載當前記住的滾動值。 delegate.rememberScrollPosition('my-scroll-id'); delegate.scrollToRememberedPosition(); $scope.items = []; for (var i=0; i<100; i++) { $scope.items.push(i); } }
<ion-toggle ng-model="shouldShowScrollView"></ion-toggle>
<ion-scroll delegate-handle="myScroll" ng-if="shouldShowScrollView">
<div ng-controller="ScrollCtrl">
<ion-list>
<ion-item ng-repeat="i in items">{{i}}</ion-item>
</ion-list>
</div>
</ion-scroll>
function ScrollCtrl($scope, $ionicScrollDelegate) {
var delegate = $ionicScrollDelegate.$getByHandle('myScroll');
// 這裏能夠聽任何惟一的ID。重點是:要在每次從新建立控制器時
// 咱們要加載當前記住的滾動值。
delegate.rememberScrollPosition('my-scroll-id');
delegate.scrollToRememberedPosition();
$scope.items = [];
for (var i=0; i<100; i++) {
$scope.items.push(i);
}
}
參數 |
類型 |
詳情 |
id |
字符串 |
保留已滾動位置的滾動視圖的id。 |
forgetScrollPosition()
中止保存這個滾動視圖的滾動位置。
scrollToRememberedPosition([shouldAnimate])
若是這個滾動視圖有個和它的滾動位置關聯的id(經過調用rememberScrollPosition方法),而後記住那個位置,加載那個位置而後滾動到那個位置。
參數 |
類型 |
詳情 |
shouldAnimate
(可選)
|
布爾值 |
是否應用滾動動畫。 |
$getByHandle(handle)
- 返回:
delegateInstance
一個表明性實例就是隻控制帶有delegate-handle
的滾動視圖來匹配給定的句柄。
例如: $ionicScrollDelegate.$getByHandle('my-handle').scrollTop();
帶有標籤欄的多標籤界面的功能是,經過標籤切換一組「頁面」。
在某個元素上指定任何標籤類或 動畫類來定義它的外觀和感受。
請查看ionTab
指令文檔來了解各個選項卡的更多詳情。
注意:不要將ion-tabs置入一個ion-content元素內;它會形成必定的已知CSS錯誤。
用法
<ion-tabs class="tabs-positive tabs-icon-only">
<ion-tab title="首頁" icon-on="ion-ios7-filing" icon-off="ion-ios7-filing-outline">
<!-- 標籤 1 內容 -->
</ion-tab>
<ion-tab title="關於" icon-on="ion-ios7-clock" icon-off="ion-ios7-clock-outline">
<!-- 標籤 2 內容 -->
</ion-tab>
<ion-tab title="設置" icon-on="ion-ios7-gear" icon-off="ion-ios7-gear-outline">
<!-- 標籤 3 內容 -->
</ion-tab>
</ion-tabs>
API
包含一個選項卡內容。該內容僅存在於被選中的給定選項卡中。
每一個ionTab都有本身的瀏覽歷史。
用法
<ion-tab
title="Tab!"
icon="my-icon"
href="#/tab/tab-link"
on-select="onTabSelected()"
on-deselect="onTabDeselected()">
</ion-tab>
要查看標籤欄完整運行的例子,參見ionTabs
文檔。
API
屬性 |
類型 |
詳情 |
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()來指定切換標籤。 |
$ionicTabsDelegate
受權控制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。提示:若是一個ionNavView 在選項卡里,你可能須要設置它爲true。 |
selectedIndex()
$getByHandle(handle)
- 返回:
delegateInstance
一個受權實例用delegate-handle
只控制ionTabs
來匹配指定句柄。
例如: $ionicTabsDelegate.$getByHandle('my-handle').select(0);
一個容器元素的側邊菜單和主要內容。經過把主要內容區域從一邊拖動到另外一邊,來讓左側或右側的側欄菜單進行切換。
![Side Menu](http://static.javashuo.com/static/loading.gif)
要了解更多側欄菜單的信息,查看文檔中的 ionSideMenuContent
和ionSideMenu
。
用法
要使用側欄菜單,添加一個父元素<ion-side-menus>
,一箇中間內容 <ion-side-menu-content>
,和一個或更多 <ion-side-menu>
指令。
<ion-side-menus>
<!-- 中間內容 -->
<ion-side-menu-content ng-controller="ContentController">
</ion-side-menu-content>
<!-- 左側菜單 -->
<ion-side-menu side="left">
</ion-side-menu>
<!-- 右側菜單 -->
<ion-side-menu side="right">
</ion-side-menu>
</ion-side-menus>
function ContentController($scope, $ionicSideMenuDelegate) {
$scope.toggleLeft = function() {
$ionicSideMenuDelegate.toggleLeft();
};
}
API
ion-side-menu-content
隸屬於ionSideMenus
一個可見主體內容的容器,同級的一個或多個ionSideMenu
指令。
用法
<ion-side-menu-content
drag-content="true">
</ion-side-menu-content>
查看文檔中的ionSideMenus
,來了解一個完整側欄菜單的例子。
API
屬性 |
類型 |
詳情 |
drag-content
(可選)
|
布爾值 |
內容是否可被拖動。默認爲true。 |
一個側欄菜單的容器,同級的一個ionSideMenuContent
指令。
用法
<ion-side-menu
side="left"
width="myWidthValue + 20"
is-enabled="shouldLeftSideMenuBeEnabled()">
</ion-side-menu>
完整側欄菜單的例子,參加文檔中的 ionSideMenus
。
API
屬性 |
類型 |
詳情 |
side |
字符串 |
側欄菜單當前在哪一邊。可選的值有: 'left' 或 'right'。 |
is-enabled
(可選)
|
布爾值 |
該側欄菜單是否可用。 |
width
(可選)
|
數值 |
側欄菜單應該有多少像素的寬度。默認爲275。 |
menu-toggle
在一個指定的側欄中切換菜單。
用法
下面是一個在導航欄內連接的例子。點擊此連接會自動打開指定的側欄菜單。
<ion-view>
<ion-nav-buttons side="left">
<button menu-toggle="left" class="button button-icon icon ion-navicon"></button>
</ion-nav-buttons>
...
</ion-view>
menu-close
關閉當前打開的側欄菜單。
用法
下面是一個側欄菜單內連接的例子。點擊這個連接會自動關閉當前打開的菜單。
<a menu-close href="#/home" class="item">首頁</a>
$ionicSideMenuDelegate
受權控制ionSideMenus
指令。
該方法直接觸發$ionicSideMenuDelegate
服務,來控制全部側欄菜單。用$getByHandle方法控制特定狀況下的ionSideMenus。
用法
<body ng-controller="MainCtrl">
<ion-side-menus>
<ion-side-menu-content>
內容!
<button ng-click="toggleLeftSideMenu()">
切換左側側欄菜單
</button>
</ion-side-menu-content>
<ion-side-menu side="left">
左側菜單!
<ion-side-menu>
</ion-side-menus>
</body>
function MainCtrl($scope, $ionicSideMenuDelegate) {
$scope.toggleLeftSideMenu = function() {
$ionicSideMenuDelegate.toggleLeft();
};
}
方法
toggleLeft([isOpen])
切換左側側欄菜單(若是存在)。
參數 |
類型 |
詳情 |
isOpen
(可選)
|
布爾值 |
是否打開或關閉菜單。默認:切換菜單。 |
toggleRight([isOpen])
切換右側側欄菜單(若是存在)。
參數 |
類型 |
詳情 |
isOpen
(可選)
|
布爾值 |
是否打開或關閉菜單。默認:切換菜單。 |
getOpenRatio()
獲取打開菜單內容超出菜單寬度的比例。好比,一個寬度爲100px的菜單被寬度爲50px以50%的比例打開,將會返回一個比例值爲0.5。
- 返回:
浮點
0 表示沒被打開,若是左側菜單處於已打開或正在打開爲0 到 1,若是右側菜單處於已打開或正在打開爲0 到-1。
isOpen()
isOpenLeft()
isOpenRight()
canDragContent([canDrag])
參數 |
類型 |
詳情 |
canDrag
(可選)
|
布爾值 |
設置是否能夠拖動內容打開側欄菜單。 |
$getByHandle(handle)
- 返回:
delegateInstance
一個表明性的實例是用delegate-handle
只控制ionSideMenus
指令來匹配指定的句柄。
例如: $ionicSideMenuDelegate.$getByHandle('my-handle').toggleLeft();