Angular ポータルとオーバーレイレンダリング | ng-hub-ui-portal

現在の DOM ツリーの外側にコンポーネント、テンプレート、オーバーレイを動的にレンダリングする Angular ポータルライブラリ。位置制御に対応します。

API リファレンス

portal の完全な仕様をここにまとめました。バインド、リッスン、プロジェクション、テーマ設定ができるすべてが一か所に集約されています。必要なものを接続し、好きなようにスタイリングしてください — standalone で signal フレンドリーです。

インプット

15 個のインプットで portal を調整。通常の Angular @Input と同じようにバインドできます。

名前デフォルト説明
animationbooleantrue の場合、ポータルの開閉がアニメーションされます。デフォルト: true
ariaLabelledBystringポータルウィンドウに設定する `aria-labelledby` 属性の値
ariaDescribedBystringポータルウィンドウに設定する `aria-describedby` 属性の値
beforeDismiss() => boolean | Promise<boolean>ポータルが dismiss される直前に呼び出されるコールバック。dismiss を防ぐには false を返します。
containerstring | HTMLElementすべての新しいポータルウィンドウを付加する要素を指定するセレクタ。指定しない場合は `body` になります。
injectorInjector依存性注入を有効にするために、ポータルコンテンツで使用する `Injector`。
keyboardbooleantrue の場合、Escape キーが押されるとポータルが閉じます。デフォルト: true
scrollablebooleanスクロール可能なポータルコンテンツ(デフォルトは false)。
windowClassstringカスタムのスタイルや配置のためにポータルウィンドウに付加するカスタムクラス。
portalDialogClassstringポータルダイアログコンテナに付加するカスタムクラス。
portalContentClassstringポータルコンテンツのラッパーに付加するカスタムクラス。
headerSelectorstringポータルウィンドウのヘッダー要素のカスタムセレクタ。特定のポータルセクションを対象にするのに役立ちます。
footerSelectorstringポータルウィンドウのフッター要素のカスタムセレクタ。特定のポータルセクションを対象にするのに役立ちます。
dismissSelectorstringポータルウィンドウの dismiss をトリガーできる要素のカスタムセレクタ。デフォルト: `[data-dismiss="portal"]`
closeSelectorstringポータルウィンドウの close をトリガーできる要素のカスタムセレクタ。デフォルト: `[data-close="portal"]`

アウトプット

アウトプットはまだドキュメント化されていません。

メソッド

portal をコードから操作 — プログラム操作のための 5 個のメソッドを備えています。

名前シグネチャ戻り値説明
HubPortal.openopen(content: any, options?: HubPortalOptions): HubPortalRefHubPortalRef指定されたコンテンツ(コンポーネント型、TemplateRef、または文字列)とオプションで新しいポータルウィンドウを開き、それを制御するための HubPortalRef を返します。コンテンツコンポーネントは HubActivePortal を注入して、内側からポータルを閉じたり dismiss したりできます。
HubPortal.toggletoggle(content: any, options?: HubPortalOptions): HubPortalRefHubPortalRef現在開いているすべてのポータルを理由 'toggle' で dismiss し、それらが完全に非表示になるのを待ってから、指定されたコンテンツとオプションで新しいポータルを表示します。新しいポータルへの参照を返します。
HubPortal.dismissAlldismissAll(reason?: any): void現在表示されているすべてのポータルウィンドウを、指定された理由で dismiss します。
HubPortal.hasOpenPortalshasOpenPortals(): booleanbooleanアプリケーション内に現在開いているポータルウィンドウがあるかどうかを示します。
HubPortal.activeInstancesactiveInstances: EventEmitter<HubPortalRef[]>EventEmitter<HubPortalRef[]>ポータルが開かれるか削除されるたびに、現在開いている HubPortalRef インスタンスのリストを発行するイベントエミッター。

テンプレート

自分好みに — 1 個のテンプレートスロットでカスタムマークアップをプロジェクションできます。

名前説明サンプル
Portal Template動的レンダリングのために HubPortal サービスに渡せるテンプレート参照<ng-template #portalTemplate> <div class="portal-content"> <div class="portal-header"> <h4>Portal Title</h4> <button data-dismiss="portal">×</button> </div> <div class="portal-body"> Portal content goes here </div> <div class="portal-footer"> <button data-dismiss="portal">Cancel</button> <button data-close="portal">OK</button> </div> </div> </ng-template> <!-- Open the portal --> <button (click)="portal.open(portalTemplate)">Open Portal</button>