Comment on page
09.-Navigation-Service
Angular Navigation Service(routing) is limited to outlets. We tried a lot to extend Angular Routing. But decided to write our own Navigation Service.
With Narik Navigation Service you can have multiple NavigationProvider. Everyone is registered by a key and has its own behaviour on navigation request.
For example currently Narik implements two NavigationProvider.
- NarikRouteNavigationProviderActs as Angular Routing.
- NarikDialogNavigationProviderWhenever a navigation request received, it displays requested view, in a dialog.
It can be extended with many different NavigationProvider. Like Tab NavigationProvider and...
NavigationService is the manager if NavigationProviders. It collects all provided NavigationProviders and uses then.
Example:
export class test{
@NarikInject(NavigationService)
someMethod()
{
navigationService: NavigationService;
this.navigationService
.navigate(
["../" + this.config.entityKey],
"dialog",
{
relativeTo: this.route
},
data
)
.then((d: DialogRef<any>) => {
d.events
.pipe(filter(x => x.eventType === "ENTITY_UPDATED"))
.subscribe(x => {
this.refresh();
});
});
}
}
If you create new NavigationProvider, you should provide it in your module providers.
{
provide: NavigationProvider,
useClass: NewNavigationProvider,
multi: true
}
Last modified 2yr ago