feat(common): add ability to retrieve the state from Location service (#30055)

Previously there wasn't a way to retrieve `history.state` from the `Location` service. The only time the framework exposed this value was in navigation events. This meant if you weren't using the Angular router, there wasn't a way to get access to this `history.state` value other than going directly to the DOM.

This PR adds an API to retrieve the value of `history.state`. This will be useful and needed to provide a backwards-compatible `Location` service that can emulate AngularJS's `$location` service since we will need to be able to read the state data in order to produce AngularJS location transition events.

This feature will additionally be useful to any application that wants to access state data through Angular rather than going directly to the DOM APIs.

PR Close #30055
This commit is contained in:
Jason Aden
2019-02-06 14:42:57 -08:00
committed by Ben Lesh
parent d0672c252e
commit b44b14368f
11 changed files with 81 additions and 5 deletions

View File

@ -7,6 +7,7 @@ export declare class MockLocationStrategy extends LocationStrategy {
back(): void;
forward(): void;
getBaseHref(): string;
getState(): unknown;
onPopState(fn: (value: any) => void): void;
path(includeHash?: boolean): string;
prepareExternalUrl(internal: string): string;
@ -19,6 +20,7 @@ export declare class SpyLocation implements Location {
urlChanges: string[];
back(): void;
forward(): void;
getState(): unknown;
go(path: string, query?: string, state?: any): void;
isCurrentPathEqualTo(path: string, query?: string): boolean;
normalize(url: string): string;