Window overview
NbWindowService
The NbWindowService
can be used to open windows.
Installation
Import NbWindowModule
to your app module.
@NgModule({
imports: [
// ...
NbWindowModule.forRoot(config),
],
})
export class AppModule { }
If you are using it in a lazy loaded module than you have to install NbWindowModule.forChild
:
@NgModule({
imports: [
// ...
NbWindowModule.forChild(config),
],
})
export class LazyLoadedModule { }
Usage
A new window can be opened by calling the open
method with a component or template to be loaded
and an optional configuration.
open
method will return NbWindowRef
that can be used for the further manipulations.
const windowRef = this.windowService.open(MyComponent, { ... });
NbWindowRef
gives you ability manipulate opened window.
Also, you can inject NbWindowRef
inside provided component which rendered in window.
this.windowService.open(MyWindowComponent, { ... });
// my.component.ts
constructor(protected windowRef: NbWindowRef) {
}
minimize() {
this.windowRef.minimize();
}
close() {
this.windowRef.close();
}
Instead of component you can create window from TemplateRef. As usual you can access context provided via config
via let-
variables. Also you can get reference to the NbWindowRef
in context's windowRef
property.
Configuration
As mentioned above, open
method of the NbWindowService
may receive optional configuration options.
Also, you can modify default windows configuration through NbWindowModule.forRoot({ ... })
.
You can read about all available options on API tab.
You can configure which buttons are available in a window via the buttons
property of the window config.
NbWindowRef
The NbWindowRef
helps to manipulate window after it was created.
The window can be dismissed by using close
method of the windowRef.
You can access rendered component as componentRef
property of the windowRef.
Property contentInstance
contains the instance of the component opened in the window.
NbWindowConfig
Window configuration options.
Need some help or found an issue?
Ask on Stack Overflow with tag `nebular` or post an issue on GitHub.