0

アプリのメイン ページに、クリックするとアクティブなタブを変更する要素を設計しました。

私は次のことをしていました:

events.subscribe('change-tab', (tab, filterOnSport) => {
      console.log('TabsPage#constructor - change-tab event received with params: ', tab, filterOnSport);
      if (filterOnSport) this.findTabParams.filterOnSport = filterOnSport;
      this.tabs.select(tab);
    });

ただし、上記のタブに一度もアクセスしたことがない場合、これは初めては機能しません ( https://github.com/ionic-team/ionic/issues/12592を参照) 。

Github の問題で、誰かがタブのクリックをシミュレートすることを提案しているのを見ました。

そのために使用しようとしViewChildていますが、うまく機能させることができません。

// View
<ion-tabs #tabs>
  <ion-tab [root]="tab1Root" tabIcon="home"></ion-tab>
  <ion-tab #findTab [root]="tab2Root" [rootParams]="findTabParams" tabIcon="search"></ion-tab>
  <ion-tab [root]="tab3Root" tabIcon="chatbubbles" [tabBadge]="unread?1:null" [tabsHideOnSubPages]=true></ion-tab>
  <!--<ion-tab [root]="tab3Root" tabIcon="chatbubbles" [tabBadge]="totalUnreadMessages?.$value" [tabsHideOnSubPages]=true></ion-tab>-->
</ion-tabs>

// Controller
@ViewChild('findTab') findTab: ElementRef;
...
ngAfterViewInit() {
    console.log('TAB elem ', this.findTab);
    // How click the tab ?
  }

タブのクリック機能をトリガーするにはどうすればよいですか?

4

2 に答える 2

0

GitHub で推奨されているため、この方法を使用することにしました。

document.getElementById(tabid).click();
于 2017-09-28T10:08:58.913 に答える