Location
class
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
SpyLocation
Description
Depending on the LocationStrategy used, Location
will either persist to the URL's path or the URL's hash segment.
Static methods
normalizeQueryParams() | |||
---|---|---|---|
Given a string of url parameters, prepend with ? if needed, otherwise return the parameters as is.
| |||
static normalizeQueryParams(params: string): stringParameters
Returns
|
joinWithSlash() | ||||||
---|---|---|---|---|---|---|
Given 2 parts of a URL, join them with a slash if needed. | ||||||
static joinWithSlash(start: string, end: string): stringParameters
Returns
|
stripTrailingSlash() | |||
---|---|---|---|
If URL has a trailing slash, remove it, otherwise return the URL as is. The method looks for the first occurrence of either # , ? , or the end of the line as / characters and removes the trailing slash if one exists.
| |||
static stripTrailingSlash(url: string): stringParameters
Returns
|
Methods
path() | |||
---|---|---|---|
Returns the normalized URL path. | |||
path(includeHash: boolean = false): stringParameters
Returns
|
isCurrentPathEqualTo() | ||||||
---|---|---|---|---|---|---|
Normalizes the given path and compares to the current normalized path. | ||||||
isCurrentPathEqualTo(path: string, query: string = ): booleanParameters
Returns
|
normalize() | |||
---|---|---|---|
Given a string representing a URL, returns the URL path after stripping the trailing slashes. | |||
normalize(url: string): stringParameters
Returns
|
prepareExternalUrl() | |||
---|---|---|---|
Given a string representing a URL, returns the platform-specific external URL path. If the given URL doesn't begin with a leading slash ('/' ), this method adds one before normalizing. This method also adds a hash if HashLocationStrategy is used, or the APP_BASE_HREF if the PathLocationStrategy is in use.
| |||
prepareExternalUrl(url: string): stringParameters
Returns
|
go() | |||||||||
---|---|---|---|---|---|---|---|---|---|
Changes the browsers URL to a normalized version of the given URL, and pushes a new item onto the platform's history. | |||||||||
go(path: string, query: string = , state: any = null): voidParameters
Returns
|
replaceState() | |||||||||
---|---|---|---|---|---|---|---|---|---|
Changes the browser's URL to a normalized version of the given URL, and replaces the top item on the platform's history stack. | |||||||||
replaceState(path: string, query: string = , state: any = null): voidParameters
Returns
|
forward() |
---|
Navigates forward in the platform's history. |
forward(): voidParametersThere are no parameters. Returns
|
back() |
---|
Navigates back in the platform's history. |
back(): voidParametersThere are no parameters. Returns
|
subscribe() | |||||||||
---|---|---|---|---|---|---|---|---|---|
Subscribe to the platform's popState events.
| |||||||||
subscribe(onNext: (value: PopStateEvent) => void, onThrow?: (exception: any) => void, onReturn?: () => void): SubscriptionLikeParameters
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/123
is normalizedmy/app/user/123
is 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; }
}
© 2010–2019 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://v7.angular.io/api/common/Location