角度に基づくツリー型セカンダリテーブルを実現する

角度に基づくツリー型セカンダリテーブルを実現する

まず効果を見てみましょう:

コード:

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 をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • AngularJS は、テーブル テーブル td セルをクリックして入力ボックス/編集可能な状態を変更する例を実装します。
  • AngularJS ファジークエリ機能実装コード (フィルタコンテンツ ドロップダウンメニュー ソート フィルタ センシティブ文字 検証判定 テーブル情報の追加)
  • AngularJS での基本的なテーブル操作の例
  • Angular テーブル アーティファクト ui-grid アプリケーションの詳細な説明
  • Angularはフォームに入力されたデータをテーブルにレンダリングします
  • AngularJS はテーブルの追加、削除、変更、クエリを実装します (フロントエンドのみ)

<<:  PostgreSQL データベースにおける varchar、char、text の比較に関する簡単な説明

>>:  Dockerイメージの圧縮と最適化操作

推薦する

Windows Server 2016 に Docker をインストールするプロセスと発生した問題

前提条件Windows Server でコンテナーを実行するには、Windows Server (半...

CentOS 7 で MySQL 8 の複数のインスタンスを設定する詳細なチュートリアル (必要な数だけ設定できます)

原因最近、プロジェクトのリファクタリングを始めたのですが、マスタースレーブと読み取り書き込み分離を使...

CentOS7.4 起動時の緊急モードへようこそメッセージに対する解決策

今日は仮想マシンを使って実験をしました。システムをインストールし、いくつかのオプションを最適化した後...

Linuxでmysqlの定期的なコールドバックアップを実装するためにmysqldump+expect+crontabを使用するアイデアの詳細な説明

目次1. 遭遇した問題2. アイデア3. コード1. 遭遇した問題私たちは皆、mysqldump を...

MySQL 5.7 をインストールした後にコマンドライン ウィンドウを開くとクラッシュする問題の解決方法

序文最近、MySQL 5.7 をインストールしましたが、問題が見つかりました。コマンド ライン ウィ...

MySQL データベースで機密データの暗号化と復号化を実装する方法

目次1. 準備2. MySQL暗号化関数方式2.1 MySQL 暗号化2.2 MYSQL 復号化3....

パスワードログインなしでCentOS7にxshellリモートログインするアイデアを詳しく解説

まず、全体的な考え方についてお話しします。 1. パスワードを使用してCentOSシステムにログイン...

Reactでwindow.print()を使用した際にページが応答しなくなる問題の解決記録について

目次1. 問題の背景: 2. 問題の原因: 3. 問題解決:要約: 1. 問題の背景: window...

Doubanウェブサイトのウェブサイトコンテンツに小さな変更を加える方法

<br />読みやすさはウェブサイトにとって非常に重要な部分であり、ウェブサイトの核心と...

MySQLは適切なストレージエンジンを選択します

データベースに関して最もよく聞かれる質問の 1 つは、現在のビジネス ニーズを満たす MySQL の...

Linux で nginx を起動および再起動する方法

Nginx (エンジン x) は、IMAP/POP3/SMTP サービスも提供する高性能 HTTP ...

nginx における proxy_pass のさまざまな使用法の詳細な説明

目次プロキシ転送ルール最初のもの: 2番目のタイプ: 3番目のタイプ: 4番目のタイプ: 5番目:プ...

JavaScript の静的スコープと動的スコープを例を使って説明します

目次序文静的スコープと動的スコープ静的スコープ実行プロセス動的スコープ実行プロセスエクササイズ練習1...

Docker での Redis のマスタースレーブ構成チュートリアルの詳細説明

1. Redisイメージを取得するdocker pull redis 2. それぞれポート6379、...

HTML の著作権記号のフォント選択問題 (著作権記号をより美しくする方法)

1. 問題を発見する&copy; は HTML の著作権記号ですが、間違ったフォントを選択す...