import {Component, provide} from 'angular2/core'; import {bootstrap} from 'angular2/platform/browser'; import {CanActivate, RouteConfig, ComponentInstruction, ROUTER_DIRECTIVES, APP_BASE_HREF, CanReuse, RouteParams, OnReuse} from 'angular2/router'; // #docregion reuseCmp @Component({ selector: 'my-cmp', template: `
hello {{name}}!
message:
` }) class MyCmp implements CanReuse, OnReuse { name: string; constructor(params: RouteParams) { this.name = params.get('name') || 'NOBODY'; } routerCanReuse(next: ComponentInstruction, prev: ComponentInstruction) { return true; } routerOnReuse(next: ComponentInstruction, prev: ComponentInstruction) { this.name = next.params['name']; } } // #enddocregion @Component({ selector: 'example-app', template: `

Say hi to...

Naomi | Brad `, directives: [ROUTER_DIRECTIVES] }) @RouteConfig([ {path: '/', component: MyCmp, name: 'HomeCmp'}, {path: '/:name', component: MyCmp, name: 'HomeCmp'} ]) class AppCmp { } export function main() { return bootstrap( AppCmp, [provide(APP_BASE_HREF, {useValue: '/angular2/examples/router/ts/reuse'})]); }