Вкладки ionic2 Метод getSelected дает предыдущий выбор

Ниже приведен код, над которым я работаю

onTabsChange(abc) {
   let selected_tab = this.tabs.getSelected();
   let tab_index = selected_tab.index;
   console.log(tab_index);  // should print current tab index but it prints previously selected tab index
}

И ниже приведен HTML-код

 <ion-tabs #myTabs class="menu" (ionChange)="onTabsChange()" selectedIndex="0">
   <ion-tab [root]="blank" tabTitle="Blank"></ion-tab>
   <ion-tab [root]="blank" tabTitle="Blank"></ion-tab>
   <ion-tab [root]="blank" tabTitle="Blank"></ion-tab>
   <ion-tab [root]="blank" tabTitle="Blank"></ion-tab>
   <ion-tab [root]="blank" tabTitle="Blank"></ion-tab>
   <ion-tab [root]="blank" tabTitle="Blank"></ion-tab>
   <ion-tab [root]="blank" tabTitle="Blank"></ion-tab>
 </ion-tabs>

Теперь, если я нажму на любую вкладку, this.tabs.getSelected() предоставит мне ранее выбранную вкладку.

если мне нужна текущая выбранная вкладка, как я могу этого добиться..


person Jayendra Gothi    schedule 06.10.2016    source источник


Ответы (1)


Теперь, если я нажму на любую вкладку, this.tabs.getSelected() предоставит мне ранее выбранную вкладку.

Метод getSelected() возвращает выбранную вкладку, а не ранее выбранную вкладку. Дело в том, что индекс является индексом с отсчетом от нуля, поэтому первая вкладка имеет индекс 0, вторая - 1 и так далее...

<ion-tabs #myTabs (ionChange)="onTabsChange()" selectedIndex="0">
  <ion-tab [root]="tab1Root" tabTitle="TabTitle1"></ion-tab>
  <ion-tab [root]="tab2Root" tabTitle="tabTitle2"></ion-tab>
</ion-tabs>

И затем в вашем коде:

@Component({
  templateUrl: 'tabs.html'
})
export class TabsPage {
  @ViewChild('myTabs') tabRef: Tabs;

  tab1Root: any = Page1;
  tab2Root: any = Page2;

  public onTabsChange() {
    let selectedTab = this.tabRef.getSelected();
    console.log(selectedTab.index + ' - ' + selectedTab.tabTitle);
  }
}
person sebaferreras    schedule 06.10.2016
comment
у меня не работает .. может это быть из-за версии у меня установлена ​​версия ionic 2.0.0 - person Jayendra Gothi; 06.10.2016
comment
Я создам проект с новым RC и протестирую его там :) - person sebaferreras; 06.10.2016
comment
Также, когда приложение запускается, эта строка возвращает undefined this.tabs.getSelected(); я предполагаю, что есть некоторые проблемы с самой версией .. я попробую обновить до более высокой версии - person Jayendra Gothi; 06.10.2016