モーダルダイアログ内にマット選択を表示する

dcg

mat-select内側を表示しngx-smart-dialogselectいます。開くと、ダイアログの後ろに表示されます。私はこれこれをこの解決策で見つけました

.cdk-global-overlay-wrapper, .cdk-overlay-container {
    z-index: 9999!important;
}

グローバル.scssファイルに入れると問題は解決します。私が知りたいのは(私が読んだものでは説明が見つからなかったため)コンポーネントのビュー(つまり、モーダルコンポーネントのビュー)内に配置しても機能しない理由です。

前もって感謝します!

ジョン

デフォルトでは、Angularは、Angularが自動的に作成する特別な属性セレクターを使用して、コンポーネントのCSS / SCSSをコンポーネントにスコープします。これは、コンポーネントスタイルがそのコンポーネントのビューのDOM要素にのみ影響することを意味します。言い換えると、コンポーネントのスタイルは、コンポーネントのあるDOM要素にのみ影響します。

mat-selectCDKオーバーレイパッケージCDKポータル自体を使用していると思います)を使用してオーバーレイペインをレンダリングします。CDKオーバーレイパッケージは、mat-selectのオーバーレイペインをAngularアプリケーションのルートコンポーネント(ドキュメントに追加)の外側レンダリングしますbodyこれはmat-select、コンポーネントのテンプレート内にあり、mat-select要素がDOM内のコンポーネントの子要素であるにもかかわらず、mat-selectのオーバーレイペインがDOM内のコンポーネントの子要素ではないことを意味します。これは、コンポーネントのスタイルがオーバーレイペイン(またはコンポーネントの子ではない他の要素)に触れないことを意味します。

私は自分の前にこの問題に遭遇しました。個人的には、この動作はAngularのエミュレートされたcssスコープ機能のバグだと思います。ただし、Angularチームはこの問題を認識しており、実装の許容可能な制限と見なしています。Angularのメンテナの1人から、この問題をパフォーマンスの高い方法で修正する方法を現在知らないというコメントを見たのを覚えていると思います(したがって、これが変わることはないと思います)。同様に、ネイティブシャドウDOMカプセル化では、コンポーネントのCSSのみがコンポーネントの子に影響を与えるため、オーバーレイをレンダリングするときに同じ問題が発生します(パフォーマンス上の理由からも仕様がこの決定を下したと思います)。

これはすべて言われていますが、コンポーネントのcssファイルcssファイルにcssを配置し、それでも動作させるには2つの方法があります(cssを「グローバル」cssファイルに配置する必要はありません)。

  1. @Component({encapsulation: ViewEncapsulation.None})オプションを使用して、コンポーネントのcssスコープを無効にします。これにより、コンポーネントのcssスコープが無効になり、コンポーネントのすべてのcssが「グローバル」になります。通常の「グローバル」cssとは異なり、コンポーネントのcssは、コンポーネントが作成/破棄されるときにDOMに追加および削除されます(したがって、コンポーネントのcssは、コンポーネントがDOMにある場合にのみ存在します)。
    • このオプションを選択した場合でも、コンポーネントの要素セレクターを使用して、個々のスタイルをコンポーネントに手動でスコープできます。
  2. コンポーネントのcssスコープをViewEncapsulation.Emulated(デフォルト)に設定し、角度カスタム::ng-deep疑似セレクター使用して、コンポーネントのcssファイル内の特定のcssスタイルからスコープを選択的に削除します。

    例: ::ng-deep { .cdk-global-overlay-wrapper, .cdk-overlay-container { z-index: 9999!important; } }

    • ::ng-deepセレクタは、角度に廃止されましたが、角度のチームは、セレクタを削除する現在の計画を持っており、彼らはまだ必要な場合は、当面、それを使用することを推奨します。
    • ViewEncapsulation.NativeそしてViewEncapsulation.ShadowDomサポートしていない::ng-deepセレクタを(とセレクタを突き刺すためのあらゆるサポートを持っていません)。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

モーダルダイアログボックス内にアイコンを表示する

分類Dev

マットダイアログでマットテーブルを表示する

分類Dev

モーダルダイアログにはどのヘッダーを選択する必要がありますか?

分類Dev

フラグメントのダイアログフラグメント内にグーグルマップを表示する

分類Dev

ダイアログの下に角度のあるマテリアル選択表示

分類Dev

ブートストラップを使用してモーダルダイアログを表示する方法

分類Dev

JavaScriptからBootstrap3動的ドロップダウンモーダルダイアログで選択したアイテムを取得する方法

分類Dev

モーダルダイアログボックスを表示するTeamCity

分類Dev

document.readyのときにモーダルダイアログを表示する

分類Dev

Bootstrapモーダルダイアログを順番に表示する

分類Dev

マウスで選択したGoogleスプレッドシートアプリスクリプトのモードレスダイアログで範囲を選択するにはどうすればよいですか?

分類Dev

トースト通知ポップアップをモーダルダイアログとして表示するにはどうすればよいですか?

分類Dev

ロックでソーシャルプロバイダーログインを使用するときにアカウント選択を強制する方法

分類Dev

ローカルフォルダからリモートフォルダへのドラッグアンドドロップ後にWinSCPがファイルの選択を解除しないようにする

分類Dev

ローカルフォルダからリモートフォルダへのドラッグアンドドロップ後にWinSCPがファイルの選択を解除しないようにする

分類Dev

インタラクティブグリッド選択値をモーダルダイアログページに渡す方法

分類Dev

同じモーダル内の選択ドロップダウンからオプションを選択する際に、モーダルにマージンを設定する方法

分類Dev

ドロップダウンの選択に基づいてモーダルポップアップウィンドウを表示する

分類Dev

選択(ドロップダウン)値に基づいてブートストラップモーダルウィンドウを表示する

分類Dev

モーダルダイアログに画像を挿入する

分類Dev

Googleマップのオートコンプリートの結果がブートストラップモーダルダイアログに表示される

分類Dev

ドロップダウンを開いたときに(アウトラインモードで)マテリアルUI選択コンポーネントのアウトラインカラーを変更する方法(現在は青色)

分類Dev

TwitterBootstrapを使用してモーダルダイアログにプログレスバーを表示する

分類Dev

選択したグリッド線の値に基づいて情報ダイアログを表示する

分類Dev

ダイアログボックス内のオプションの選択からテキストを取得するテキストビューがあります。選択範囲を別のレイアウトにも表示するにはどうすればよいですか?

分類Dev

PHP-ブートストラップモーダルダイアログ、日付の選択、CSVのダウンロード-ブラウザにファイルを保存させることができません

分類Dev

ドロップダウンリストで選択してすべてのアイテム名を取得し、テーブルに表示する方法

分類Dev

AngularJSのモーダルダイアログにプロフィール写真を表示する

分類Dev

アップロードボタンのクリック時にカメラ、ギャラリーを選択してオプションを選択し、キャンセルしてダイアログまたはアクションセットを表示するにはどうすればよいですか?

Related 関連記事

  1. 1

    モーダルダイアログボックス内にアイコンを表示する

  2. 2

    マットダイアログでマットテーブルを表示する

  3. 3

    モーダルダイアログにはどのヘッダーを選択する必要がありますか?

  4. 4

    フラグメントのダイアログフラグメント内にグーグルマップを表示する

  5. 5

    ダイアログの下に角度のあるマテリアル選択表示

  6. 6

    ブートストラップを使用してモーダルダイアログを表示する方法

  7. 7

    JavaScriptからBootstrap3動的ドロップダウンモーダルダイアログで選択したアイテムを取得する方法

  8. 8

    モーダルダイアログボックスを表示するTeamCity

  9. 9

    document.readyのときにモーダルダイアログを表示する

  10. 10

    Bootstrapモーダルダイアログを順番に表示する

  11. 11

    マウスで選択したGoogleスプレッドシートアプリスクリプトのモードレスダイアログで範囲を選択するにはどうすればよいですか?

  12. 12

    トースト通知ポップアップをモーダルダイアログとして表示するにはどうすればよいですか?

  13. 13

    ロックでソーシャルプロバイダーログインを使用するときにアカウント選択を強制する方法

  14. 14

    ローカルフォルダからリモートフォルダへのドラッグアンドドロップ後にWinSCPがファイルの選択を解除しないようにする

  15. 15

    ローカルフォルダからリモートフォルダへのドラッグアンドドロップ後にWinSCPがファイルの選択を解除しないようにする

  16. 16

    インタラクティブグリッド選択値をモーダルダイアログページに渡す方法

  17. 17

    同じモーダル内の選択ドロップダウンからオプションを選択する際に、モーダルにマージンを設定する方法

  18. 18

    ドロップダウンの選択に基づいてモーダルポップアップウィンドウを表示する

  19. 19

    選択(ドロップダウン)値に基づいてブートストラップモーダルウィンドウを表示する

  20. 20

    モーダルダイアログに画像を挿入する

  21. 21

    Googleマップのオートコンプリートの結果がブートストラップモーダルダイアログに表示される

  22. 22

    ドロップダウンを開いたときに(アウトラインモードで)マテリアルUI選択コンポーネントのアウトラインカラーを変更する方法(現在は青色)

  23. 23

    TwitterBootstrapを使用してモーダルダイアログにプログレスバーを表示する

  24. 24

    選択したグリッド線の値に基づいて情報ダイアログを表示する

  25. 25

    ダイアログボックス内のオプションの選択からテキストを取得するテキストビューがあります。選択範囲を別のレイアウトにも表示するにはどうすればよいですか?

  26. 26

    PHP-ブートストラップモーダルダイアログ、日付の選択、CSVのダウンロード-ブラウザにファイルを保存させることができません

  27. 27

    ドロップダウンリストで選択してすべてのアイテム名を取得し、テーブルに表示する方法

  28. 28

    AngularJSのモーダルダイアログにプロフィール写真を表示する

  29. 29

    アップロードボタンのクリック時にカメラ、ギャラリーを選択してオプションを選択し、キャンセルしてダイアログまたはアクションセットを表示するにはどうすればよいですか?

ホットタグ

アーカイブ