まず効果を見てみましょう: コード: 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 の比較に関する簡単な説明
前提条件Windows Server でコンテナーを実行するには、Windows Server (半...
原因最近、プロジェクトのリファクタリングを始めたのですが、マスタースレーブと読み取り書き込み分離を使...
今日は仮想マシンを使って実験をしました。システムをインストールし、いくつかのオプションを最適化した後...
目次1. 遭遇した問題2. アイデア3. コード1. 遭遇した問題私たちは皆、mysqldump を...
序文最近、MySQL 5.7 をインストールしましたが、問題が見つかりました。コマンド ライン ウィ...
目次1. 準備2. MySQL暗号化関数方式2.1 MySQL 暗号化2.2 MYSQL 復号化3....
まず、全体的な考え方についてお話しします。 1. パスワードを使用してCentOSシステムにログイン...
目次1. 問題の背景: 2. 問題の原因: 3. 問題解決:要約: 1. 問題の背景: window...
<br />読みやすさはウェブサイトにとって非常に重要な部分であり、ウェブサイトの核心と...
データベースに関して最もよく聞かれる質問の 1 つは、現在のビジネス ニーズを満たす MySQL の...
Nginx (エンジン x) は、IMAP/POP3/SMTP サービスも提供する高性能 HTTP ...
目次プロキシ転送ルール最初のもの: 2番目のタイプ: 3番目のタイプ: 4番目のタイプ: 5番目:プ...
目次序文静的スコープと動的スコープ静的スコープ実行プロセス動的スコープ実行プロセスエクササイズ練習1...
1. Redisイメージを取得するdocker pull redis 2. それぞれポート6379、...
1. 問題を発見する© は HTML の著作権記号ですが、間違ったフォントを選択す...