Router events
Learn about how to subscribe to and handle router events.
Emitted events
Subscribing to the events
import {
IRouterEvents,
LocationChangeEvent,
NavigationStartEvent,
NavigationEndEvent,
NavigationCancelEvent,
NavigationErrorEvent,
} from '@aurelia/router-lite';
import { IDisposable } from 'aurelia';
export class SomeService implements IDisposable {
private readonly subscriptions: IDisposable[];
public log: string[] = [];
public constructor(@IRouterEvents events: IRouterEvents) {
this.subscriptions = [
events.subscribe('au:router:location-change', (event: LocationChangeEvent) => { /* handle event */ }),
events.subscribe('au:router:navigation-start', (event: NavigationStartEvent) => { /* handle event */ }),
events.subscribe('au:router:navigation-end', (event: NavigationEndEvent) => { /* handle event */ }),
events.subscribe('au:router:navigation-cancel', (event: NavigationCancelEvent) => { /* handle event */ }),
events.subscribe('au:router:navigation-error', (event: NavigationErrorEvent) => { /* handle event */ }),
];
}
public dispose(): void {
const subscriptions = this.subscriptions;
this.subscriptions.length = 0;
const len = subscriptions.length;
for (let i = 0; i < len; i++) {
subscriptions[i].dispose();
}
}
}Last updated
Was this helpful?