Я пытаюсь создать базовое приложение в Ionic2, которое использует как боковое меню, так и навигацию по вкладкам. Я понимаю понятия стека навигации и что каждая вкладка имеет свой собственный стек навигации, но я не могу понять контроль над вкладками.
Шаблон стартового шаблона вкладок инициализирует проект с одним 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
, и я могу указать на другую вкладку (по индексу, а не по имени). Поэтому в этой ситуации выбор моей вкладки "timeline" приведет к созданию конструктора, и вместо перехода на вкладку временной шкалы мы выберем вторую вкладку.
Что я хотел бы сделать: перейдите на вкладку со ссылкой в боковом меню.
Мое боковое меню состоит из двух ионных элементов, простых кнопок с прослушивателем кликов. В Ionic 1.x я мог бы использовать ui-sref или href для соответствия определенному состоянию, но в Ionic 2 я не могу понять, как управлять моими вкладками.
Я могу получить доступ к ion-nav
, указав ему идентификатор и используя app.getComponent('nav')
, но я не могу настроить таргетинг на вкладки с ионами (надеясь, что он будет связан с экземпляром контроллера Tabs).