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.

  • NarikRouteNavigationProvider

    Acts as Angular Routing.

  • NarikDialogNavigationProvider

    Whenever 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
}