マイtabs.ts(simpilified)から生成 - * ngForで生成されたタブに使用されるデータは、PHPのバックエンドからもたらされる:Ionic2 - 目に見えないタブ - 観察可能な
import ...
export interface Group {
id: number;
group: string;
};
@Component({
template: `
<ion-tabs #myTabs selectedIndex="0">
<ion-tab *ngFor="let tab of userGroups" [root]="page" [rootParams]="tab.id" [tabTitle]="tab.group" tabIcon="pulse"></ion-tab>
</ion-tabs>
`
})
export class GroupsTabsPage {
userGroups: Group[];
page: any = TabStudentsPage;
constructor(public app: App, public api: Api, public navParams: NavParams) {
this.api.getGroupsList()
.subscribe(
data => {
this.userGroups = data;
},
err => {
this.app.getRootNav().push(LoginPage)
}
);
// ionViewDidEnter() {
// }
}
}
結果は目に見えないタブです。 しかし、マウスを動かすとカーソルが「手」に変わり、クリックすることができます。クリックすると、タブバー全体が表示され、すべてが期待通りに機能します。
タブ要素を参照するために@ViewChildを使用したとき、興味深いのは、 'length'プロパティが常に0(ionViewDidLoadイベントをチェックしています)です。タブのいずれかを選択しようとすると、プログラム的にも失敗した - 彼らは幽霊のようなものです;)あなたは少なくとも一つの静的 * ngForテンプレート内のものは、すべて* ngForものが表示されるまで、次のタブが、静的を置く。また
あなたがプログラムで選択したものとタブエレメントのselectedIndexプロパティに関係なく、常に選択されます。
アイデアはありますか?私は3日を無駄にしました。
'this.content.resize()'を試しましたか? [doc](http://ionicframework.com/docs/v2/api/components/content/Content/#resize)には、コンテンツのサイズを再計算するよう指示されています。 – sebaferreras