[解決済み] Mat-tab-groupを使用してAngular 2のマテリアルでmat-tabをプログラム的に選択する
2023-06-06 23:08:36
質問
イベント発生時に特定のタブを選択するにはどうしたらよいですか。
試しに
[selectedIndex]="selectedTab"
を変更し
selectedTab
をタブのインデックスに変更する必要がありますが、タブが読み込まれた後ではうまくいかないようです。
どのように解決するのですか?
UPDATE (最新のangular+materialを使用)
複数の方法があります...
- 双方向のデータバインディングを使用した、可能な解決策
<button mat-raised-button (click)="demo1BtnClick()">Tab Demo 1!</button>
<mat-tab-group [(selectedIndex)]="demo1TabIndex">
<mat-tab label="Tab 1">Content 1</mat-tab>
<mat-tab label="Tab 2">Content 2</mat-tab>
<mat-tab label="Tab 3">Content 3</mat-tab>
</mat-tab-group>
public demo1TabIndex = 1;
public demo1BtnClick() {
const tabCount = 3;
this.demo1TabIndex = (this.demo1TabIndex + 1) % tabCount;
}
- テンプレート変数を使用して、私たちのクリック関数に渡すことが可能なソリューションです。
<button mat-raised-button (click)="demo2BtnClick(demo2tab)">Tab Demo 2!</button>
<mat-tab-group #demo2tab>
<mat-tab label="Tab 1">Content 1</mat-tab>
<mat-tab label="Tab 2">Content 2</mat-tab>
</mat-tab-group>
public demo2BtnClick(tabGroup: MatTabGroup) {
if (!tabGroup || !(tabGroup instanceof MatTabGroup)) return;
const tabCount = tabGroup._tabs.length;
tabGroup.selectedIndex = (tabGroup.selectedIndex + 1) % tabCount;
}
- ViewChildを使用した、可能な解決策
<button mat-raised-button (click)="demo3BtnClick()">Tab Demo 3!</button>
<mat-tab-group #demo3Tab>
<mat-tab label="Tab 1">Content 1</mat-tab>
<mat-tab label="Tab 2">Content 2</mat-tab>
</mat-tab-group>
@ViewChild("demo3Tab", { static: false }) demo3Tab: MatTabGroup;
public demo3BtnClick() {
const tabGroup = this.demo3Tab;
if (!tabGroup || !(tabGroup instanceof MatTabGroup)) return;
const tabCount = tabGroup._tabs.length;
tabGroup.selectedIndex = (tabGroup.selectedIndex + 1) % tabCount;
}
live-demo。 https://stackblitz.com/edit/angular-selecting-mattab?file=src%2Fapp%2Fapp.component.ts
関連
-
[解決済み] Angularでselect要素をオブジェクトにバインドする
-
[解決済み] Angular CLIで特定のバージョンのAngularをインストールするには?
-
[解決済み] Error: モジュールによってインポートされた予期しない値 'undefined'。
-
[解決済み] Typescript におけるインターフェースとクラスの違い
-
[解決済み] 角度の2つのスイッチケース値
-
[解決済み] の@ViewChildのreadパラメータは何ですか?
-
[解決済み] コンポーネントではなくクラスにサービスをインジェクトする方法
-
[解決済み] 角度換算2
-
[解決済み] ActivatedRoute(paramsなど)のobservableの購読を解除しなければならないのでしょうか?
-
[解決済み] Angular 2でコンポーネントの静的変数をHTMLにバインドする方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Angular 2: 反応するフォームコントロールの反復処理
-
[解決済み] Angular Materialでのデフォルトのソート - ヘッダーのソート
-
[解決済み] .tsファイルはTypeScriptのコンパイルの一部ですが、使用されていませんという警告を消すには?
-
[解決済み] タイプスクリプト タイプ X はタイプ Y の length、pop、push、concat、その他 26 のプロパティが欠落しています。[2740]
-
[解決済み] angular-cli が HTTPS で ng serve するようにする。
-
[解決済み] ExpressionChangedAfterItHasBeenCheckedError: チェックされた後に、式が変更されました。以前の値: 'undefined'
-
[解決済み] Typescript におけるインターフェースとクラスの違い
-
[解決済み] Angularで確認ダイアログを作る簡単な方法?
-
[解決済み] Angular2 Tutorial (Tour of Heroes)です。モジュール 'angular2-in-memory-web-api' を見つけることができません。
-
[解決済み] Angular - ngForの中のngIfの中のパラメータを持つng-template [重複]。