まず効果を見てみましょう: コード: 1.html <div class="userContent_content"> <div> <テーブル> <tr> <td>ノード名</td> <td>ノード管理 IP</td> <td>ノードログイン名</td> <td>ノードログインパスワード</td> </tr> // ng-container を空のタグとして使用して、レビュー要素に見つからない for または if イベントを配置できるようにします <ng-container *ngFor="let item of currentTotalList,let i = index"> <tr> <td style="color: #04AEB4;cursor: ポインター;" class="img"> <div> <div>{{item.name} </div> <div> // 以下は矢印の展開と折りたたみを切り替える矢印の画像です。現在のクリック インデックスがリスト インデックスと等しいかどうかを判断し、等しい場合は展開され、等しくない場合は折りたたまれます <img (click)="clickShowChildList(i,item.name)" [attr.src]="i == currentClickOpenIndex?'../../assets/resource/img/bottom.png':'../../assets/resource/img/right.png'"> </div> </div> </td> <td>{{item.ip} </td> <td>{{item.ユーザー名}}</td> <td>{{item.パスワード}}</td> </tr> // ng-container タグを再度使用して、テーブルの子項目をネストします <ng-container *ngFor="let childItem of item.nodeList, let j = index"> // for ループと if 判定は同じタグ内に共存できないため、隠しイベント if は tr タグ内に配置されます。現在クリックされているインデックスがリストのインデックスと一致しているかどうかを判定し、等しい場合は折りたたまれ、等しくない場合は表示されます。 <tr *ngIf="i == 現在のクリックオープンインデックス"> <td style="color: #04AEB4;cursor: ポインター;" class="img"> <div> <div> {{childItem.masterIp}} </div> </div> </td> <td>{{childItem.ip}}</td> <td>{{childItem.ユーザー名}}</td> <td>{{childItem.password}}</td> </tr> </ng-コンテナ> </ng-コンテナ> </テーブル> </div> </div> 2. 少ない .userContent_content{ 幅: 100%; 高さ: calc(~"100% - 60px"); オーバーフロー:自動; >div:n番目の子(1){ >表{ 幅: 100%; tr{ td{ 幅: 25%; テキスト配置: 中央; フォントサイズ: 14px; 色: #fff; パディング: 16px 0px; ボックスの影: 0 1px #333; } } .img { >div { 幅: 100%; ディスプレイ: フレックス; 位置: 相対的; >div:n番目の子(1) { 幅: 85%; 空白: ラップなし; テキストオーバーフロー: 省略記号; -o-テキストオーバーフロー:省略記号; オーバーフロー: 非表示; マージン: 0 自動; } } 画像 { 高さ: 10px !重要; 幅: 10px !重要; 左マージン: 0 !重要; 位置: 絶対; 右: 0; 上: 3px; } } } } >div:n番目の子(2){ 高さ: 80px; 幅: 90%; ディスプレイ: フレックス; アイテムの位置を中央揃えにします。 マージン: 0 自動; コンテンツの端揃え: flex-end; #ページ{ 表示: テーブル; } } } 3.js (1) currentTotalListテーブルデータの形式は次のようになります(シミュレーションデータを自分で記述することもできます)。 (2)現在のクリックインデックス変数currentClickOpenIndexを-1に初期化する (3)は展開と折りたたみの矢印のクリックイベントです。 クリック表示子リスト = (i, 項目) =>{ console.log(i,this.currentClickOpenIndex) if(this.currentClickOpenIndex==i){ this.currentClickOpenIndex = -1 }それ以外{ this.currentClickOpenIndex = i } } そして完成です... Angular をベースにしたツリー型セカンダリ テーブルの実装に関するこの記事はこれで終わりです。Angular のツリー型セカンダリ テーブルに関する関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: PostgreSQL データベースにおける varchar、char、text の比較に関する簡単な説明
事前に言っておく気まぐれですが、MySQL の order by sorting にどのようなルール...
MySQL ログ システムで最も重要なログは、REDO ログとアーカイブ ログです。後者は MySQ...
この記事の例では、完全な選択機能を実装するためのVueの具体的なコードを参考までに共有しています。具...
目次事前分析とは何ですか?変数と関数の準備の違いvar 変数の繰り返し宣言変数と関数の昇格の優先順位...
目次1. v-for: 配列の内容を走査する(よく使われる) 2. v-for: オブジェクトのプロ...
Dockerの機能1) すぐに始められるユーザーがプログラムを「Docker 化」するには、わずか数...
前回の記事では、Docker Desktop をインストールし、Kubernetes を有効にしまし...
私がデザインした最初の Web ページは次のとおりです。 私はこの業界に7年間在籍し、プログラミング...
以前、UDP を使い始めるために簡単な UDP サーバーとクライアントの例を作成しましたが、実際に使...
MySQL の遅いクエリの説明MySQL スロー クエリ ログは、MySQL が提供するログ レコー...
私たちのコンピューターには、ディレクトリ、写真、ソース コードなどのファイルが保存されています。たく...
目次序文:実装手順:完全なソースコード:詳細情報:序文: vueでは、デフォルトページを実装し、di...
Nginx の紹介Nginx (「エンジン x」) は、ロシアのプログラマー Igor Sysoev...
ブラウザはおそらく私たちにとって最も馴染みのあるツールです。 Firefox、Opera、Safar...
目次1. 技術の選択2. 技術的な実装vue-json-excelプラグインを使用して実装1. vu...