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) | null, onReturn?: (() => void) | null): SubscriptionLike
} Subclasses
Description
Depending on which LocationStrategy is 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 parameters as is. | ||
|
| params | Type: |
Returns
string
| joinWithSlash() | ||||
|---|---|---|---|---|
| Given 2 parts of a url, join them with a slash if needed. | ||||
|
| start | Type: |
| end | Type: |
Returns
string
| stripTrailingSlash() | ||
|---|---|---|
| If url has a trailing slash, remove it, otherwise return url as is. This method looks for the first occurrence of either #, ?, or the end of the line as | ||
|
| url | Type: |
Returns
string
Methods
| path() | ||
|---|---|---|
| Returns the normalized URL path. | ||
|
| includeHash | Type: Optional. Default is |
Returns
string
| isCurrentPathEqualTo() | ||||
|---|---|---|---|---|
| Normalizes the given path and compares to the current normalized path. | ||||
|
| path | Type: |
| query | Type: Optional. Default is |
Returns
boolean
| normalize() | ||
|---|---|---|
| Given a string representing a URL, returns the normalized URL path without leading or trailing slashes. | ||
|
| url | Type: |
Returns
string
| 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 ( | ||
|
| url | Type: |
Returns
string
| go() | ||||||
|---|---|---|---|---|---|---|
| Changes the browsers URL to the normalized version of the given URL, and pushes a new item onto the platform's history. | ||||||
|
| path | Type: |
| query | Type: Optional. Default is |
| state | Type: Optional. Default is |
Returns
void
| replaceState() | ||||||
|---|---|---|---|---|---|---|
| Changes the browsers URL to the normalized version of the given URL, and replaces the top item on the platform's history stack. | ||||||
|
| path | Type: |
| query | Type: Optional. Default is |
| state | Type: Optional. Default is |
Returns
void
| forward() |
|---|
| Navigates forward in the platform's history. |
|
| back() |
|---|
| Navigates back in the platform's history. |
|
| subscribe() | ||||||
|---|---|---|---|---|---|---|
| Subscribe to the platform's | ||||||
|
| onNext | Type: |
| onThrow | Type: Optional. Default is |
| onReturn | Type: Optional. Default is |
Returns
SubscriptionLike
Usage notes
It's better to use 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 normalized -
my/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; }
}
© 2010–2019 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://v6.angular.io/api/common/Location