我正在努力在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控制器实例)。