Angular Portal- und Overlay-Rendering | ng-hub-ui-portal

Angular Portal-Bibliothek zum dynamischen Rendern von Komponenten, Templates und Overlays außerhalb des aktuellen DOM-Baums mit Positionierungssteuerung.

API-Referenz

Hier ist der vollständige Vertrag für portal: alles, was du binden, abhören, projizieren und gestalten kannst, an einem Ort gesammelt. Verdrahte, was du brauchst, und gestalte, was du willst — es ist standalone und Signals-freundlich.

Inputs

Stelle portal mit 15 Inputs ein. Binde sie wie jeden Angular-@Input.

NameTypStandardBeschreibung
animationbooleanWenn true, werden das Öffnen und Schließen des Portals animiert. Standard: true
ariaLabelledBystring`aria-labelledby`-Attributwert, der am Portal-Fenster gesetzt wird
ariaDescribedBystring`aria-describedby`-Attributwert, der am Portal-Fenster gesetzt wird
beforeDismiss() => boolean | Promise<boolean>Callback unmittelbar bevor das Portal verworfen wird. Gib false zurück, um das Verwerfen zu verhindern.
containerstring | HTMLElementEin Selektor, der das Element angibt, an das alle neuen Portal-Fenster angehängt werden sollen. Wenn nicht angegeben, ist es `body`.
injectorInjectorDer `Injector`, der für den Portal-Inhalt verwendet wird, um Dependency Injection zu ermöglichen.
keyboardbooleanWenn true, wird das Portal geschlossen, wenn die Escape-Taste gedrückt wird. Standard: true
scrollablebooleanScrollbarer Portal-Inhalt (standardmäßig false).
windowClassstringEine benutzerdefinierte Klasse, die an das Portal-Fenster für individuelles Styling und Positionierung angehängt wird.
portalDialogClassstringEine benutzerdefinierte Klasse, die an den Portal-Dialog-Container angehängt wird.
portalContentClassstringEine benutzerdefinierte Klasse, die an den Portal-Inhalts-Wrapper angehängt wird.
headerSelectorstringBenutzerdefinierter Selektor für das Header-Element des Portal-Fensters. Nützlich, um bestimmte Portal-Abschnitte anzusprechen.
footerSelectorstringBenutzerdefinierter Selektor für das Footer-Element des Portal-Fensters. Nützlich, um bestimmte Portal-Abschnitte anzusprechen.
dismissSelectorstringBenutzerdefinierter Selektor für Elemente, die das Verwerfen des Portal-Fensters auslösen können. Standard: `[data-dismiss="portal"]`
closeSelectorstringBenutzerdefinierter Selektor für Elemente, die das Schließen des Portal-Fensters auslösen können. Standard: `[data-close="portal"]`

Outputs

Noch keine Outputs dokumentiert.

Methoden

Steuere portal aus dem Code heraus — 5 Methoden auf der programmatischen Schnittstelle.

NameSignaturRückgabeBeschreibung
HubPortal.openopen(content: any, options?: HubPortalOptions): HubPortalRefHubPortalRefÖffnet ein neues Portal-Fenster mit dem angegebenen Inhalt (Komponententyp, TemplateRef oder String) und den Optionen und gibt eine HubPortalRef zu seiner Steuerung zurück. Inhaltskomponenten können HubActivePortal injizieren, um das Portal von innen zu schließen oder zu verwerfen.
HubPortal.toggletoggle(content: any, options?: HubPortalOptions): HubPortalRefHubPortalRefVerwirft alle aktuell offenen Portale mit dem Grund 'toggle', wartet, bis sie vollständig verborgen sind, und zeigt dann ein neues Portal mit dem angegebenen Inhalt und den Optionen. Gibt die Referenz auf das neue Portal zurück.
HubPortal.dismissAlldismissAll(reason?: any): voidVerwirft alle aktuell angezeigten Portal-Fenster mit dem übergebenen Grund.
HubPortal.hasOpenPortalshasOpenPortals(): booleanbooleanGibt an, ob in der Anwendung aktuell offene Portal-Fenster vorhanden sind.
HubPortal.activeInstancesactiveInstances: EventEmitter<HubPortalRef[]>EventEmitter<HubPortalRef[]>Event-Emitter, der bei jedem Öffnen oder Entfernen eines Portals die Liste der aktuell offenen HubPortalRef-Instanzen ausgibt.

Templates

Mach es zu deinem — 1 Template-Slots lassen dich eigenes Markup projizieren.

NameBeschreibungBeispiel
Portal TemplateTemplate-Referenz, die an den HubPortal-Service für dynamisches Rendern übergeben werden kann<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>