parent
adc54302cb
commit
5279d06e88
|
@ -6,14 +6,14 @@
|
|||
* found in the LICENSE file at https://angular.io/license
|
||||
*/
|
||||
|
||||
import {LocationChangeEvent, LocationChangeListener, PlatformLocation} from '@angular/common';
|
||||
import {Injectable} from '@angular/core';
|
||||
import {Subject} from 'rxjs/Subject';
|
||||
import * as url from 'url';
|
||||
|
||||
import {Injectable} from '@angular/core';
|
||||
import {LocationChangeEvent, LocationChangeListener, PlatformLocation} from '@angular/common';
|
||||
import {getDOM} from './private_import_platform-browser';
|
||||
import {scheduleMicroTask} from './facade/lang';
|
||||
import {getDOM} from './private_import_platform-browser';
|
||||
|
||||
import {Subject} from 'rxjs/Subject';
|
||||
|
||||
|
||||
/**
|
||||
|
@ -27,26 +27,20 @@ export class ServerPlatformLocation implements PlatformLocation {
|
|||
private _hash: string = '';
|
||||
private _hashUpdate = new Subject<LocationChangeEvent>();
|
||||
|
||||
getBaseHrefFromDOM(): string {
|
||||
return getDOM().getBaseHref();
|
||||
}
|
||||
|
||||
getBaseHrefFromDOM(): string { return getDOM().getBaseHref(); }
|
||||
|
||||
onPopState(fn: LocationChangeListener): void {
|
||||
// No-op: a state stack is not implemented, so
|
||||
// no events will ever come.
|
||||
}
|
||||
|
||||
onHashChange(fn: LocationChangeListener): void {
|
||||
this._hashUpdate.subscribe(fn);
|
||||
}
|
||||
|
||||
onHashChange(fn: LocationChangeListener): void { this._hashUpdate.subscribe(fn); }
|
||||
|
||||
get pathname(): string { return this._path; }
|
||||
get search(): string { return this._search; }
|
||||
get hash(): string { return this._hash; }
|
||||
|
||||
get url(): string {
|
||||
return `${this.pathname}${this.search}${this.hash}`;
|
||||
}
|
||||
get url(): string { return `${this.pathname}${this.search}${this.hash}`; }
|
||||
|
||||
private setHash(value: string, oldUrl: string) {
|
||||
if (this._hash === value) {
|
||||
|
@ -55,8 +49,8 @@ export class ServerPlatformLocation implements PlatformLocation {
|
|||
}
|
||||
this._hash = value;
|
||||
const newUrl = this.url;
|
||||
scheduleMicroTask(() => this._hashUpdate.next(
|
||||
{type: 'hashchange', oldUrl, newUrl} as LocationChangeEvent));
|
||||
scheduleMicroTask(
|
||||
() => this._hashUpdate.next({ type: 'hashchange', oldUrl, newUrl } as LocationChangeEvent));
|
||||
}
|
||||
|
||||
replaceState(state: any, title: string, newUrl: string): void {
|
||||
|
@ -71,11 +65,7 @@ export class ServerPlatformLocation implements PlatformLocation {
|
|||
this.replaceState(state, title, newUrl);
|
||||
}
|
||||
|
||||
forward(): void {
|
||||
throw new Error('Not implemented');
|
||||
}
|
||||
forward(): void { throw new Error('Not implemented'); }
|
||||
|
||||
back(): void {
|
||||
throw new Error('Not implemented');
|
||||
}
|
||||
back(): void { throw new Error('Not implemented'); }
|
||||
}
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
* found in the LICENSE file at https://angular.io/license
|
||||
*/
|
||||
|
||||
import {Component, NgModule, destroyPlatform} from '@angular/core';
|
||||
import {PlatformLocation} from '@angular/common';
|
||||
import {Component, NgModule, destroyPlatform} from '@angular/core';
|
||||
import {async} from '@angular/core/testing';
|
||||
import {getDOM} from '@angular/platform-browser/src/dom/dom_adapter';
|
||||
import {ServerModule, platformDynamicServer} from '@angular/platform-server';
|
||||
|
@ -43,7 +43,7 @@ export function main() {
|
|||
expect(getDOM().getText(body)).toEqual('Works!');
|
||||
});
|
||||
}));
|
||||
|
||||
|
||||
describe('PlatformLocation', () => {
|
||||
it('is injectable', () => {
|
||||
const body = writeBody('<app></app>');
|
||||
|
|
Loading…
Reference in New Issue