W3cubDocs

/Angular 12

$locationShim

class final

Location service that provides a drop-in replacement for the $location service provided in AngularJS.

class $locationShim {
  constructor($injector: any, location: Location, platformLocation: PlatformLocation, urlCodec: UrlCodec, locationStrategy: LocationStrategy)
  onChange(fn: (url: string, state: unknown, oldUrl: string, oldState: unknown) => void, err: (e: Error) => void = (e: Error) => { })
  $$parse(url: string)
  $$parseLinkUrl(url: string, relHref?: string): boolean
  absUrl(): string
  url(url?: string): string | this
  protocol(): string
  host(): string
  port(): number | null
  path(path?: string | number): string | this
  search(search?: string | number | { [key: string]: unknown; }, paramValue?: string | number | boolean | string[]): {...}
  hash(hash?: string | number): string | this
  replace(): this
  state(state?: unknown): unknown | this
}

See also

Constructor

constructor($injector: any, location: Location, platformLocation: PlatformLocation, urlCodec: UrlCodec, locationStrategy: LocationStrategy)

Parameters
$injector any
location Location
platformLocation PlatformLocation
urlCodec UrlCodec
locationStrategy LocationStrategy

Methods

Registers listeners for URL changes. This API is used to catch updates performed by the AngularJS framework. These changes are a subset of the $locationChangeStart and $locationChangeSuccess events which fire when AngularJS updates its internally-referenced version of the browser URL.

onChange(fn: (url: string, state: unknown, oldUrl: string, oldState: unknown) => void, err: (e: Error) => void = (e: Error) => { })

Parameters
fn (url: string, state: unknown, oldUrl: string, oldState: unknown) => void

The callback function that is triggered for the listener when the URL changes.

err (e: Error) => void

The callback function that is triggered when an error occurs.

Optional. Default is (e: Error) => { }.

It's possible for $locationChange events to happen, but for the browser URL (window.location) to remain unchanged. This onChange callback will fire only when AngularJS actually updates the browser URL (window.location).

Parses the provided URL, and sets the current URL to the parsed result.

$$parse(url: string)

Parameters
url string

The URL string.

Parses the provided URL and its relative URL.

$$parseLinkUrl(url: string, relHref?: string): boolean

Parameters
url string

The full URL string.

relHref string

A URL string relative to the full URL string.

Optional. Default is undefined.

Returns

boolean

Retrieves the full URL representation with all segments encoded according to rules specified in RFC 3986.

absUrl(): string

Parameters

There are no parameters.

Returns

string

// given URL http://example.com/#/some/path?foo=bar&baz=xoxo
let absUrl = $location.absUrl();
// => "http://example.com/#/some/path?foo=bar&baz=xoxo"

Retrieves the current URL, or sets a new URL. When setting a URL, changes the path, search, and hash, and returns a reference to its own instance.

url(): string

Parameters

There are no parameters.

Returns

string

url(url: string): this

Parameters
url string
Returns

this

// given URL http://example.com/#/some/path?foo=bar&baz=xoxo
let url = $location.url();
// => "/some/path?foo=bar&baz=xoxo"

Retrieves the protocol of the current URL.

protocol(): string

Parameters

There are no parameters.

Returns

string

// given URL http://example.com/#/some/path?foo=bar&baz=xoxo
let protocol = $location.protocol();
// => "http"

Retrieves the protocol of the current URL.

host(): string

Parameters

There are no parameters.

Returns

string

In contrast to the non-AngularJS version location.host which returns hostname:port, this returns the hostname portion only.

// given URL http://example.com/#/some/path?foo=bar&baz=xoxo
let host = $location.host();
// => "example.com"

// given URL http://user:[email protected]:8080/#/some/path?foo=bar&baz=xoxo
host = $location.host();
// => "example.com"
host = location.host;
// => "example.com:8080"

Retrieves the port of the current URL.

port(): number | null

Parameters

There are no parameters.

Returns

number | null

// given URL http://example.com/#/some/path?foo=bar&baz=xoxo
let port = $location.port();
// => 80

Retrieves the path of the current URL, or changes the path and returns a reference to its own instance.

path(): string

Parameters

There are no parameters.

Returns

string

path(path: string | number): this

Parameters
path string | number
Returns

this

Paths should always begin with forward slash (/). This method adds the forward slash if it is missing.

// given URL http://example.com/#/some/path?foo=bar&baz=xoxo
let path = $location.path();
// => "/some/path"

3 overloads...

Show All Hide All
Overload #1

Retrieves a map of the search parameters of the current URL, or changes a search part and returns a reference to its own instance.

search(): { [key: string]: unknown; }

Parameters

There are no parameters.

Returns

`{

}: The parsed searchobject of the current URL, or the changedsearch` object.

Overload #2

search(search: string | number | { [key: string]: unknown; }): this

Parameters
search string | number | { [key: string]: unknown; }
Returns

this

Overload #3

search(search: string | number | { [key: string]: unknown; }, paramValue: string | number | boolean | string[]): this

Parameters
search string | number | { [key: string]: unknown; }
paramValue string | number | boolean | string[]
Returns

this

// given URL http://example.com/#/some/path?foo=bar&baz=xoxo
let searchObject = $location.search();
// => {foo: 'bar', baz: 'xoxo'}

// set foo to 'yipee'
$location.search('foo', 'yipee');
// $location.search() => {foo: 'yipee', baz: 'xoxo'}

Retrieves the current hash fragment, or changes the hash fragment and returns a reference to its own instance.

hash(): string

Parameters

There are no parameters.

Returns

string

hash(hash: string | number): this

Parameters
hash string | number
Returns

this

// given URL http://example.com/#/some/path?foo=bar&baz=xoxo#hashValue
let hash = $location.hash();
// => "hashValue"

Changes to $location during the current $digest will replace the current history record, instead of adding a new one.

replace(): this

Parameters

There are no parameters.

Returns

this

Retrieves the history state object when called without any parameter.

state(): unknown

Parameters

There are no parameters.

Returns

unknown

state(state: unknown): this

Parameters
state unknown
Returns

this

Change the history state object when called with one parameter and return $location. The state object is later passed to pushState or replaceState.

This method is supported only in HTML5 mode and only in browsers supporting the HTML5 History API methods such as pushState and replaceState. If you need to support older browsers (like Android < 4.0), don't use this method.

© 2010–2021 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://v12.angular.io/api/common/upgrade/$locationShim