import {APP_BASE_HREF} from '@angular/common'; import {Component, ComponentRef, Injectable} from '@angular/core'; import {bootstrap} from '@angular/platform-browser-dynamic'; import {ComponentInstruction, OnDeactivate, ROUTER_DIRECTIVES, RouteConfig} from '@angular/router-deprecated'; @Injectable() export class LogService { logs: string[] = []; addLog(message: string): void { this.logs.push(message); } } // #docregion routerOnDeactivate @Component({selector: 'my-cmp', template: `
hello
`}) class MyCmp implements OnDeactivate { constructor(private logService: LogService) {} routerOnDeactivate(next: ComponentInstruction, prev: ComponentInstruction) { this.logService.addLog( `Navigating from "${prev ? prev.urlPath : 'null'}" to "${next.urlPath}"`); } } // #enddocregion @Component({ selector: 'example-app', template: `

My App

Log:

{{ logItem }}

`, directives: [ROUTER_DIRECTIVES] }) @RouteConfig([ {path: '/', component: MyCmp, name: 'HomeCmp'}, {path: '/:param', component: MyCmp, name: 'ParamCmp'} ]) export class AppCmp { constructor(public logService: LogService) {} } export function main(): Promise> { return bootstrap(AppCmp, [ {provide: APP_BASE_HREF, useValue: '/@angular/examples/router/ts/on_deactivate'}, LogService ]); }