vue-mvvm / dialog / DialogService
DialogService
Represents an MVVM service for instantiating dialogs from any ViewModel
Constructors
Constructor
ts
new DialogService(): DialogService;Returns
DialogService
Methods
initDialog()
ts
initDialog<Instance, Arguments>(cls, ...args): Instance;Renders a new instance of a DialogControl using the provided arguments.
Type Parameters
Instance
Instance extends DialogControl
Arguments
Arguments extends unknown[]
Parameters
cls
DialogControlConstructor<Instance, Arguments>
The class constructor for the DialogControl.
args
...Arguments
The arguments to pass to the dialog control constructor.
Returns
Instance
The newly created instance of the dialog control.
Example
ts
class MyDialogControl extends DialogControl {
public isOpen: Ref<boolean> = ref(false);
public constructor(message: string) {
// Do something with the message...
}
public onOpen() {
this.isOpen.value = true;
}
public onClose() {
this.isOpen.value = false;
// Since we only show a message, we can destroy the dialog afterward
this.destroy();
}
}
class MainViewModel extends ViewModel {
private dialog: DialogService = this.ctx.getService(DialogService);
// can be called multiple times
public async openDialog(): Promise<void> {
// instantiate a new dialog
const dialog: MyDialogControl = this.dialog.initDialog(MyDialogControl, "Some message");
// open the dialog
await dialog.openDialog();
// at this point we could call this.runAction(dialog) to await a dialog's action
}
}