Location
A service that applications can use to interact with a browser's URL.
class Location {
static normalizeQueryParams(params: string): string
static joinWithSlash(start: string, end: string): string
static stripTrailingSlash(url: string): string
path(includeHash: boolean = false): string
isCurrentPathEqualTo(path: string, query: string = ''): boolean
normalize(url: string): string
prepareExternalUrl(url: string): string
go(path: string, query: string = '', state: any = null): void
replaceState(path: string, query: string = '', state: any = null): void
forward(): void
back(): void
subscribe(onNext: (value: PopStateEvent) => void, onThrow?: (exception: any) => void, onReturn?: () => void): SubscriptionLike
}
Subclasses
Description
Depending on the LocationStrategy used, Location will either persist
to the URL's path or the URL's hash segment.
Static methods
|
Given a string of url parameters, prepend with |
|||
Parameters
Returns
|
|
Given 2 parts of a URL, join them with a slash if needed. |
||||||
Parameters
Returns
|
|
If URL has a trailing slash, remove it, otherwise return the URL as is. The
method looks for the first occurrence of either |
|||
Parameters
Returns
|
Methods
|
Returns the normalized URL path. |
|
Normalizes the given path and compares to the current normalized path. |
|
Given a string representing a URL, returns the URL path after stripping the trailing slashes. |
|
Given a string representing a URL, returns the platform-specific external URL path.
If the given URL doesn't begin with a leading slash ( |
|
Changes the browsers URL to a normalized version of the given URL, and pushes a new item onto the platform's history. |
|
Changes the browser's URL to a normalized version of the given URL, and replaces the top item on the platform's history stack. |
|
Navigates forward in the platform's history. |
ParametersThere are no parameters. Returns
|
|
Navigates back in the platform's history. |
ParametersThere are no parameters. Returns
|
|
Subscribe to the platform's |
|||||||||
Parameters
Returns
|
Usage notes
It's better to use the Router service to trigger route changes. Use
Location only if you need to interact with or create normalized URLs outside of
routing.
Location is responsible for normalizing the URL against the application's base href.
A normalized URL is absolute from the URL host, includes the application's base href, and has no
trailing slash:
/my/app/user/123is normalizedmy/app/user/123is not normalized/my/app/user/123/is not normalized
Example
- import {Location, LocationStrategy, PathLocationStrategy} from '@angular/common';
- import {Component} from '@angular/core';
-
- @Component({
- selector: 'path-location',
- providers: [Location, {provide: LocationStrategy, useClass: PathLocationStrategy}],
- template: `
- <h1>PathLocationStrategy</h1>
- Current URL is: <code>{{location.path()}}</code><br>
- Normalize: <code>/foo/bar/</code> is: <code>{{location.normalize('foo/bar')}}</code><br>
- `
- })
- export class PathLocationComponent {
- location: Location;
- constructor(location: Location) { this.location = location; }
- }