'use strict'; import { Injectable } from '@angular/core'; import { PlatformLocation } from '@angular/common'; import { BehaviorSubject } from 'rxjs/BehaviorSubject'; @Injectable() export class Hash { public value = new BehaviorSubject(null); constructor(private location: PlatformLocation) { this.bind(); } start() { this.value.next(this.hash); } get hash() { return this.location.hash; } bind() { this.location.onHashChange(() => { this.value.next(this.hash); }); } }