Angular 2 Router Event Listener

Wie kann ich die Statusänderung in einem Angular 2-Router abhören?

In Angular 1.x habe ich dieses Event benutzt:

$rootScope.$on('$stateChangeStart',
    function(event,toState,toParams,fromState,fromParams, options){ ... })

So, wenn ich diesen Eventlistener in Angular 2 benutze:

window.addEventListener("hashchange", () => {return console.log('ok')}, false);

Es wird nicht 'ok' zurückgegeben, sondern der Status von JS geändert. Erst dann wird die Funktion history.back () des Browsers ausgeführt.

Verwenden Sie die Funktion router.subscribe () als Dienst:

import {Injectable} from 'angular2/core';
import {Router} from 'angular2/router';

@Injectable()
export class SubscribeService {
    constructor (private _router: Router) {
        this._router.subscribe(val => {
            console.info(val, '<-- subscribe func');
        })
    }
}

Injizieren Sie den Dienst in die Komponente, die das Routing initiiert:

import {Component} from 'angular2/core';
import {Router} from 'angular2/router';

@Component({
    selector: 'main',
    templateUrl: '../templates/main.html',
    providers: [SubscribeService]
})
export class MainComponent {
    constructor (private subscribeService: SubscribeService) {}
}

Ich füge diesen Dienst in andere Komponenten wie in diesem Beispiel ein. Dann ändere ich den Status, console.info () im Dienst funktioniert nicht.

Was ich falsch mache