Cookies concent notice

This site uses cookies from Google to deliver its services and to analyze traffic.
Learn more
Skip to main content
This site is no longer updated.Head to Angular.devHome
/

This is the archived documentation for Angular v17. Please visit angular.dev to see this page for the current version of Angular.

$locationShim

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
url(): string
url(url: string): this
protocol(): string
host(): string
port(): number | null
path(path?: string | number): string | this
path(): string
path(path: string | number): this
search(search?: string | number | { [key: string]: unknown; }, paramValue?: string | number | boolean | string[]): {...}
search(): {...}
search(search: string | number | { [key: string]: unknown; }): this
search(search: string | number | { [key: string]: unknown; }, paramValue: string | number | boolean | string[]): this
hash(hash?: string | number): string | this
hash(): string
hash(hash: string | number): this
replace(): this
state(state?: unknown): unknown | this
state(): unknown
state(state: 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:password@example.com: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 expand_more
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.