Angular 离子3:动态创建选项卡并选择它

Angular 离子3:动态创建选项卡并选择它,angular,tabs,ionic3,Angular,Tabs,Ionic3,我正在使用ionic 3构建一个web应用程序。我的一个需求是一个选项卡组件,第一个选项卡显示一个列表。单击每个列表项将创建一个新选项卡并显示一些内容 我实施它的方式是: <ion-tabs #myTabs tabsPlacement="top" tabsLayout="icon-end"> <ion-tab *ngFor="let tb of core.dynamicTabs" [root]="tb.pageName" tabTitle="{{tb.tabTitle}}"

我正在使用ionic 3构建一个web应用程序。我的一个需求是一个选项卡组件,第一个选项卡显示一个列表。单击每个列表项将创建一个新选项卡并显示一些内容

我实施它的方式是:

<ion-tabs #myTabs tabsPlacement="top" tabsLayout="icon-end">
  <ion-tab *ngFor="let tb of core.dynamicTabs" [root]="tb.pageName" tabTitle="{{tb.tabTitle}}" tabIcon="close" (ionSelect)="onTabActive($event)"></ion-tab>
</ion-tabs>
因此,在第一个选项卡的页面中,创建新选项卡的代码是:

createTab(rw){
  this.core.dynamicTabs.push({ "pageName": EditOptyPage, "tabTitle": rw.name, "optyId": rw.OptyId });
  (this.navCtrl.parent).select(1)

}
除了选项卡选择之外,其他一切都很好。为了简化问题,我将值硬编码为1。因此,理想情况下,每次调用createTab时,都应选择第二个选项卡

但我看到的是这样的行为: 当您第一次来时:只有一个选项卡显示列表。单击列表中的一个项目,将创建一个新选项卡。但是,这不会成为活动选项卡

现在,在列表中的任何其他链接上再单击一次,这一次以及从现在起,第二个选项卡变为活动状态


所以我不知道为什么第一次不触发

根据对爱奥尼亚论坛的一些研究,人们指出,设置标签的摘要存在问题。因此,将来必须异步调用方法

setTimeout(()={(this.navCtrl.parent).select(1)},100)


100只是我选择的一个随机数。

尝试将其粘贴在
setTimeout(()={(this.navCtrl.parent)。选择(1)},100)
查看您是否有不同的行为,如果您没有遇到,也会有不同的行为。但是,上的代码没有。但由于我的问题已经解决,所以如果您将其作为答案发布,我可以接受。我知道与此无关,但您是否知道是否有方法将方法附加到选项卡图标?
createTab(rw){
  this.core.dynamicTabs.push({ "pageName": EditOptyPage, "tabTitle": rw.name, "optyId": rw.OptyId });
  (this.navCtrl.parent).select(1)

}