Location
A service that applications can use to interact with a browser's URL.
class Location implements OnDestroy {
static normalizeQueryParams: (params: string) => string
static joinWithSlash: (start: string, end: string) => string
static stripTrailingSlash: (url: string) => string
path(includeHash: boolean = false): string
getState(): unknown
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
historyGo(relativePosition: number = 0): void
onUrlChange(fn: (url: string, state: unknown) => void): VoidFunction
subscribe(onNext: (value: PopStateEvent) => void, onThrow?: (exception: any) => void, onReturn?: () => void): SubscriptionLike
}
Subclasses
Provided in
-
'root'
Description
Depending on the LocationStrategy
used, Location
persists
to the URL's path or the URL's hash segment.
Further information is available in the Usage Notes...
Static properties
Property | Description |
---|---|
static normalizeQueryParams: (params: string) => string
|
Normalizes URL parameters by prepending with |
static joinWithSlash: (start: string, end: string) => string
|
Joins two parts of a URL with a slash if needed. |
static stripTrailingSlash: (url: string) => string
|
Removes a trailing slash from a URL string if needed.
Looks for the first occurrence of either |
Methods
path() |
---|
Normalizes the URL path for this location. |
getState() |
---|
Reports the current state of the location history. |
ParametersThere are no parameters. Returns
|
isCurrentPathEqualTo() |
---|
Normalizes the given path and compares to the current normalized path. |
normalize() |
---|
Normalizes a URL path by stripping any trailing slashes. |
prepareExternalUrl() |
---|
Normalizes an external URL path.
If the given URL doesn't begin with a leading slash ( |
go() |
---|
Changes the browser's URL to a normalized version of a given URL, and pushes a new item onto the platform's history. |
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. |
forward() |
---|
Navigates forward in the platform's history. |
ParametersThere are no parameters. Returns
|
back() |
---|
Navigates back in the platform's history. |
ParametersThere are no parameters. Returns
|
onUrlChange() |
---|
Registers a URL change listener. Use to catch updates performed by the Angular framework that are not detectible through "popstate" or "hashchange" events. |
subscribe() | |||||||||
---|---|---|---|---|---|---|---|---|---|
Subscribes to the platform's See also: |
|||||||||
Parameters
Returns
|
|||||||||
Note: |
Usage notes
It's better to use the Router.navigate()
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;
}
}