Angular CDK を使用してサービスポップアップトーストコンポーネント機能を実装する

Angular CDK を使用してサービスポップアップトーストコンポーネント機能を実装する

Angular では、Material コンポーネント ライブラリを開発すると同時に、公式チームが Angular の世界で有名な CDK であるコンポーネント開発キットも開発しました。このツールキットは、フロントエンド開発に共通する多くの機能を提供します。よく知られている Angular コンポーネント ライブラリのほぼすべてがこの開発キットに依存しています。 ANT、PrimeNGなど。

この記事では主に CDK を使用し、CDK のオーバーレイ モジュールを使用してシンプルな Toast コンポーネントを実装します。

1. 環境設備

cdkはAngularのデフォルトモジュールではないので、手動でインストールする必要がありますyarn add @angular/cdk

app.module の cdk に OverlayModule を導入する

'@angular/cdk/overlay' から OverlayModule をインポートします。

@Ngモジュール({
  宣言: [
    アプリコンポーネント
  ]、
  輸入: [
    ブラウザモジュール、
    オーバーレイモジュール
  ]、
  プロバイダー: [],
  ブートストラップ: [AppComponent]
})
クラス AppModule をエクスポートします { }

2. ToastコンポーネントとToastServiceを作成する

  • ng gc Toastコマンドを使用してコンポーネントテンプレートを素早く作成する
  • ng gs Toastを使用してサービステンプレートを作成する

2.1 Toastコンポーネントとスタイルを記述する

トーストコンポーネント

<div class="q-toast">
    <div class="q-toast-mask"></div>
    <p class="q-toast-msg">{{メッセージ}}</p>
</div>

.q-トースト{
  パディング: .2rem .5rem;
  幅: 5rem;
  位置: 相対的;
  ディスプレイ: フレックス;
  flex-direction: 行;
  アイテムの位置を中央揃えにします。
  コンテンツの中央揃え: 中央;
  

  .q-トーストマスク{
    位置: 絶対;
    上: 0;
    左: 0;
    右: 0;
    下部: 0;
    背景色: #000;
    不透明度: .8;
    境界線の半径: 2rem;
  }

  .q-トーストメッセージ{
    色: 白;
    zインデックス: 999;
  }
}

トーストサービス

'@angular/cdk/overlay' から Overlay、OverlayConfig をインポートします。
'@angular/cdk/portal' から ComponentPortal をインポートします。
'@angular/core' から { Injectable、Inj​​ectionToken、Injector } をインポートします。
'./toast.component' から ToastComponent をインポートします。

@Injectable({
  提供元: 'root'
})
クラス ToastService をエクスポートします。

  コンストラクター(プライベートオーバーレイ: Overlay) { }

  表示(メッセージ: 文字列) {
    定数config = 新しいOverlayConfig();
    定数positionStrategy = this.overlay.position()
      .global().centerVertically().centerHorizo​​ntally();
    config.positionStrategy を設定します。
    overlayRef を this.overlay.create(config) とします。
    const inject = Injector.create({
      プロバイダー:
        {
          提供: Toast_Ref、
          使用値:オーバーレイ参照
        },
        {
          提供: Toast_Msg、
          使用値:メッセージ
        }
      ]
    })
    console.log(inject.get<文字列>(Toast_Ref))
    ComponentPortal を新しいものに置き換えます (ToastComponent、null、inject);
    overlayRef.attach(部分)
    タイムアウトを設定する(() => {
      オーバーレイRef.デタッチ()
      オーバーレイRef.dispose();
    }, 2000);
  }

}

エクスポート const Toast_Ref = new InjectionToken<{}>('Toast_Ref');
エクスポート const Toast_Msg = new InjectionToken<{}>('Toast_Msg');

トーストの使用

Service を記述すると、Angular はデフォルトでそれをルート モジュールに挿入します。Toast をポップアップする必要があるコンポーネントの構築メソッドに、対応する ToastService を記述するだけで、正常に実行されます。

クラスAppComponentをエクスポートします。
  コンストラクター(プライベートトースト:ToastService) {
  }
  テスト() {

    this.toast.Show('hello cdk!')
  }
}

GIF効果画像

Angular CDK を使用してサービス ポップアップ Toast コンポーネントを実装する方法についての記事はこれで終わりです。Angular CDK による Toast コンポーネントの実装の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Angular CDK を通じてページ要素のドラッグ アンド ドロップを実装する詳細な手順
  • Angularマテリアルテーマを使用してコンポーネントライブラリの配色を定義します
  • Angular6はステップバーコンポーネントを開発します
  • Angular 2はルーティングを使用してポップアップコンポーネントのトースト操作の例をカスタマイズします
  • Angular2 は SVG を使用してチャート (棒グラフ、折れ線グラフ) コンポーネントの例をカスタマイズします。
  • Angular カプセル化検索ボックス コンポーネントの操作例

<<:  Linuxがすべてのコマンドをサポートしていない問題の解決策

>>:  MySQL の最初のインストールが成功した後にパスワードを初期化する手順

推薦する

Win10 に Tomcat サーバーをインストールし、環境変数を構成する詳細なチュートリアル (画像とテキスト)

目次JDKをダウンロードしてインストールするTomcat 圧縮パッケージをダウンロードTomcatの...

JS ES6 スプレッド演算子の魔法のような使い方

目次1. 属性を追加する2. 複数のオブジェクトを結合する3. オブジェクトのプロパティを削除する4...

Jsモジュールパッケージのエクスポートの使用法と違いにはインポートが必要

目次1. Commonjsのエクスポートとrequireの使用1.1 CommonJS エクスポート...

js ドラッグ アンド ドロップ テーブルでコンテンツ計算を実現する

この記事の例では、コンテンツの計算を実現するためのjsドラッグアンドドロップテーブルの具体的なコード...

MySqlは指定されたユーザーのデータベースビュークエリ権限を設定します

1. 新しいユーザーを作成します。 1. SQL ステートメントを実行して新しいものを作成します (...

jQuery は、画像を切り替えるための左ボタンと右ボタンのクリックを実装します。

この記事では、左ボタンと右ボタンをクリックすることで画像を切り替えるjQueryの具体的なコードを例...

要素 el-button ボタンコンポーネントの使用の詳細な説明

1. 背景ボタンは非常によく使われており、Element のボタン機能は非常に包括的です。この記事で...

Nginx に lua-nginx-module モジュールをインストールする方法

ngx_lua_module は、lua パーサーを nginx に埋め込み、lua 言語で記述され...

HTML における相対と絶対の使用法と違いの詳細な説明

HTML における相対と絶対の違い: 正直に言うと、HTML は世界で最もシンプルな言語です。タグ言...

IE7でソースファイルを含むページを開くとページが空白になる問題の解決方法

質問:私のブログのエンコーディングは utf-8 です。ページを開くと空白になっていることもあります...

XHTML 入門チュートリアル: よく使われる XHTML タグ

<br />記事と同様に、Web ページにも明確な段落と重要度の異なるタイトルが必要です...

あなたが知らない Linux KDE アプリケーション 11 選

翻訳Kool Desktop Environment の略称。 Linux、Unix、FreeBSD...

MySQL 8.0 再帰クエリの簡単な使用例

序文この記事では、MySQL 8.0 の新機能を使用して再帰クエリを実装します。詳細なサンプル コー...

Docker イメージを削除できません エラー: そのようなイメージはありません: xxxxxx 解決策

序文docker イメージを削除できません。docker docker imagesを確認すると、イ...

CentOS6.8 中国語/英語環境切り替えチュートリアル図

1. はじめに英語に慣れていない人は、システムを英語から中国語に変更したいかもしれません。一方、クラ...