我正在努力在Ionic2中創建一個使用側邊菜單和標籤導航的基本應用程序。我理解導航堆棧的概念,並且每個選項卡都有自己的導航堆棧,但是我無法掌握對這些選項卡本身的控制權。如何選擇離子2中的選項卡?
標籤初學者模板初始化一個項目,其中一個ion-nav
的根頁面指向「rootPage」,@App
的一個屬性指向TabsPage
類。
<ion-nav id="nav" [root]="rootPage" #content></ion-nav>
的TabsPage類定義3個屬性,每一個頁面,指向各自的類(每個類飾@Page
)。但TabsPage類本身似乎沒有任何作用,或用標籤控制器被注入,我發現很少對如何獲取Tabs
實例沒有文件(有上http://ionicframework.com/docs/v2/api/components/tabs/Tabs/引用的實例方法)
什麼我設法做到了: 使用一個選項卡來控制另一個。
import {Page, Tabs} from 'ionic-angular';
@Page({
templateUrl: 'build/pages/timeline/timeline.html'
})
export class Timeline {
tabs:Tabs;
constructor(tabs:Tabs) {
this.tabs=tabs;
this.selectTab(2);
}
selectTab(i:number) {
this.tabs.select(i);
}
}
上面的頁面注入了一個Tabs實例,該實例從NavController繼承。 Tabs實例具有所需的select
方法,並且我可以指向不同的選項卡(按索引,而不是按名稱)。所以在這種情況下選擇我的'時間軸'選項卡將觸發構造函數,而不是去時間軸選項卡,我們最終選擇第二個選項卡。
我想要做的事:導航到一個帶有側邊菜單中鏈接的標籤。 我的側面菜單包含兩個離子項目,帶點擊監聽器的簡單按鈕。在Ionic 1.x中,我可以使用ui-sref或href來匹配某個特定的狀態,但在Ionic 2中我無法弄清楚如何控制我的選項卡。 我可以通過給它一個id並使用app.getComponent('nav')
來訪問ion-nav
,但我無法以這種方式定位離子選項卡(希望它會綁定到Tabs控制器實例)。