ModalService
ModalService
This service is responsible for instantiating a ModalDialog component and embedding the specified component within.
Signature
class ModalService {
constructor(componentFactoryResolver: ComponentFactoryResolver, overlayHostService: OverlayHostService)
fromComponent(component: Type<T> & Type<Dialog<R>>, options?: ModalOptions<T>) => Observable<R | undefined>;
dialog(config: DialogConfig<T>) => Observable<T | undefined>;
}
Members
constructor
(componentFactoryResolver: ComponentFactoryResolver, overlayHostService: OverlayHostService) => ModalService
fromComponent
(component: Type<T> & Type<Dialog<R>>, options?: ModalOptions<T>) => Observable<R | undefined>
Create a modal from a component. The component must implement the Dialog interface. Additionally, the component should include templates for the title and the buttons to be displayed in the modal dialog. See example:
Example
class MyDialog implements Dialog {
resolveWith: (result?: any) => void;
okay() {
doSomeWork().subscribe(result => {
this.resolveWith(result);
})
}
cancel() {
this.resolveWith(false);
}
}
Example
<ng-template vdrDialogTitle>Title of the modal</ng-template>
<p>
My Content
</p>
<ng-template vdrDialogButtons>
<button type="button"
class="btn"
(click)="cancel()">Cancel</button>
<button type="button"
class="btn btn-primary"
(click)="okay()">Okay</button>
</ng-template>
dialog
(config: DialogConfig<T>) => Observable<T | undefined>
Dialog
Any component intended to be used with the ModalService.fromComponent() method must implement this interface.
Signature
interface Dialog<R = any> {
resolveWith: (result?: R) => void;
}
Members
resolveWith
(result?: R) => void
DialogConfig
Configures a generic modal dialog.
Signature
interface DialogConfig<T> {
title: string;
body?: string;
translationVars?: { [key: string]: string | number };
buttons: Array<DialogButtonConfig<T>>;
size?: 'sm' | 'md' | 'lg' | 'xl';
}
Members
title
string
body
string
translationVars
{ [key: string]: string | number }
buttons
Array<DialogButtonConfig<T>>
size
'sm' | 'md' | 'lg' | 'xl'
ModalOptions
Options to configure the behaviour of the modal.
Signature
interface ModalOptions<T> {
size?: 'sm' | 'md' | 'lg' | 'xl';
verticalAlign?: 'top' | 'center' | 'bottom';
closable?: boolean;
locals?: Partial<T>;
}
Members
size
'sm' | 'md' | 'lg' | 'xl'
verticalAlign
'top' | 'center' | 'bottom'
closable
boolean
locals
Partial<T>