7

公式ドキュメントのサンプル コードを使用して、Angular 2 ルーターを使用して現在のルートをログに記録しようとしています: https://angular.io/docs/ts/latest/api/router/OnActivate-interface.html

import {Component} from 'angular2/core';
import {
    OnActivate,
    ComponentInstruction
} from 'angular2/router';


@Component({selector: 'header-title', template: `<div>routerOnActivate: {{log}}</div>`})
export class HeaderTitle implements OnActivate {
    log: string = '';

    routerOnActivate(next: ComponentInstruction, prev: ComponentInstruction) {
        console.log('hello on activate');
        this.log = `Finished navigating from "${prev ? prev.urlPath : 'null'}" to "${next.urlPath}"`;
    }
}

メソッドrouterOnActivateが呼び出されることはありません。

RouteConfigアノテーションを使用してルートを構成しました。

@RouteConfig([
    {path: '/', component: Home, name: 'Index', data: {title: 'Index page'}},
    {path: '/home', component: Home, name: 'Home', data: {title: 'Welcome Home'}},
    {path: '/**', redirectTo: ['Index']}
])

リスナーをアクティブにするためにルーターで構成する必要があるものは他にありますか?

4

1 に答える 1

12

パスを解決するコンポーネント内に routerOnActivate メソッドを実装する必要があります。あなたの例では、ホームコンポーネントに実装すると呼び出されます。

于 2016-01-10T00:15:21.903 に答える