Angular Modal-Komponente | ng-hub-ui-modal

Barrierefreie Angular Modal-Komponente mit Stapelung, Fullscreen-Modus, Templates, Tastatursteuerung und CSS-Variablen für standalone Apps.

API-Referenz

Hier ist der vollständige Vertrag für modal: 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 modal mit 14 Inputs ein. Binde sie wie jeden Angular-@Input.

NameTypStandardBeschreibung
animationbooleanWenn true, werden das Öffnen und Schließen des Modals animiert. Standard: true
backdropboolean | "static"Wenn true, wird das Backdrop-Element erstellt. Alternativ kann "static" für ein Backdrop angegeben werden, das das Modal beim Klicken nicht schließt. Standard: true
centeredbooleanWenn true, wird das Modal vertikal zentriert. Standard: false
placementHubModalPlacementSteuert, wo das Modal im Viewport platziert wird. Standard: HubModalPlacement.Center
keyboardbooleanWenn true, wird das Modal geschlossen, wenn die Escape-Taste gedrückt wird. Standard: true
closeOnNavigationbooleanWenn true, wird das Modal geschlossen, wenn der Benutzer im Browserverlauf zurücknavigiert (history.back(), Zurück-Schaltfläche des Browsers). Standard: true
size"sm" | "lg" | "xl" | stringGröße des Modal-Fensters
windowClassstringEine benutzerdefinierte Klasse, die an das Modal-Fenster angehängt wird
backdropClassstringEine benutzerdefinierte Klasse, die an das Modal-Backdrop angehängt wird
dismissSelectorstringBenutzerdefinierter Selektor für Elemente, die das Verwerfen des Modalfensters auslösen können. Standard: "[data-dismiss=\"modal\"]"
closeSelectorstringBenutzerdefinierter Selektor für Elemente, die das Schließen des Modalfensters auslösen können. Standard: "[data-close=\"modal\"]"
headerSelectorstringBenutzerdefinierter Selektor für das Header-Element des Modal-Fensters
footerSelectorstringBenutzerdefinierter Selektor für das Footer-Element des Modal-Fensters
dataanyZusätzliche Daten, die an das Modal-Fenster übergeben werden müssen, wenn es geöffnet wird

Outputs

Reagiere darauf, was modal tut — 1 Events, an die du deine Logik anknüpfen kannst.

NameTypBeschreibung
dismissanyWird vom Modal-Fenster ausgelöst, wenn der Benutzer das Modal verwirft, z. B. durch Drücken von Escape, Klick auf das Backdrop oder Betätigen der eingebauten Schließen-Schaltfläche. Die Payload ist der Verwerfungsgrund (ModalDismissReasons.ESC, ModalDismissReasons.BACKDROP_CLICK oder ein benutzerdefinierter Wert).

Methoden

Steuere modal aus dem Code heraus — 17 Methoden auf der programmatischen Schnittstelle.

NameSignaturRückgabeBeschreibung
HubModal.openopen<C, R, D>(content: Type<C> | TemplateRef<any> | string, options?: HubModalOptions<D>): HubModalRef<C, R>HubModalRef<C, R>Öffnet ein neues Modal-Fenster mit dem angegebenen Inhalt (Komponententyp, TemplateRef oder String) und den Optionen und gibt eine HubModalRef zu seiner Steuerung zurück. Inhaltskomponenten können HubActiveModal und das HUB_MODAL_DATA-Token injizieren, um mit dem Modal zu interagieren und die Daten-Payload zu lesen.
HubModal.dismissAlldismissAll(reason?: any): voidVerwirft alle aktuell angezeigten Modal-Fenster mit dem übergebenen Grund.
HubModal.hasOpenModalshasOpenModals(): booleanbooleanGibt an, ob in der Anwendung aktuell offene Modal-Fenster vorhanden sind.
HubModal.activeInstancesactiveInstances: EventEmitter<HubModalRef[]>EventEmitter<HubModalRef[]>Event-Emitter, der bei jedem Öffnen oder Entfernen eines Modals die Liste der aktuell offenen HubModalRef-Instanzen ausgibt.
HubModalRef.closeclose(result?: R): voidSchließt das Modal mit einem optionalen Ergebniswert. Das HubModalRef.result-Promise wird mit dem übergebenen Wert aufgelöst.
HubModalRef.dismissdismiss(reason?: any): voidVerwirft das Modal mit einem optionalen Grund. Das HubModalRef.result-Promise wird mit dem übergebenen Wert abgelehnt. Beachtet den beforeDismiss-Guard, sofern einer konfiguriert wurde.
HubModalRef.updateupdate(options: HubModalUpdatableOptions): voidAktualisiert Optionen eines geöffneten Modals (aria-Attribute, centered, placement, fullscreen, backdropClass, size, variant, windowClass, modalDialogClass).
HubModalRef.componentInstancecomponentInstance: C | voidC | voidDie Instanz der Komponente, die als Modal-Inhalt verwendet wird. Gibt undefined zurück, wenn ein TemplateRef als Inhalt verwendet wurde oder das Modal geschlossen ist.
HubModalRef.resultresult: Promise<R>Promise<R>Promise, das beim Schließen des Modals mit dem Schließergebnis aufgelöst und beim Verwerfen mit dem Verwerfungsgrund abgelehnt wird.
HubModalRef.closedclosed: Observable<R>Observable<R>Observable, das beim Schließen des Modals das an close() übergebene Ergebnis ausgibt.
HubModalRef.dismisseddismissed: Observable<any>Observable<any>Observable, das beim Verwerfen des Modals den Verwerfungsgrund ausgibt — den an dismiss() übergebenen Wert oder einen internen Grund wie Backdrop-Klick oder Escape.
HubModalRef.shownshown: Observable<void>Observable<void>Observable, das ausgibt und abschließt, sobald das Modal vollständig sichtbar und seine Öffnungsanimation beendet ist.
HubModalRef.hiddenhidden: Observable<void>Observable<void>Observable, das ausgibt und abschließt, sobald Modal-Fenster und Backdrop verborgen, die Animationen beendet und ihre Elemente aus dem DOM entfernt sind.
HubActiveModal.closeclose(result?: R): voidSchließt das Modal, das die Inhaltskomponente beherbergt, und löst das HubModalRef.result-Promise mit dem optionalen Ergebniswert auf.
HubActiveModal.dismissdismiss(reason?: any): voidVerwirft das Modal, das die Inhaltskomponente beherbergt, und lehnt das HubModalRef.result-Promise mit dem optionalen Grund ab.
HubActiveModal.updateupdate(options: HubModalUpdatableOptions): voidAktualisiert Optionen des geöffneten Modals aus dem Inneren der Inhaltskomponente.
HubActiveModal.datadata: DDDie typisierte Payload, die über HubModalOptions.data übergeben wird. Entspricht dem Injizieren des HUB_MODAL_DATA-Tokens; ergibt null, wenn keine data-Option angegeben wurde.

Templates

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

NameBeschreibungBeispiel
Modal TemplateTemplate-Referenz, die an den Modal-Service übergeben werden kann<ng-template #modalTemplate let-close="close" let-dismiss="dismiss"> <div class="modal-header"> <h4 class="modal-title">Modal Title</h4> </div> <div class="modal-body"> Modal content goes here </div> <div class="modal-footer"> <button class="btn btn-secondary" (click)="dismiss()">Cancel</button> <button class="btn btn-primary" (click)="close('result')">OK</button> </div> </ng-template>