On this page
$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
        
          | 
      
$injector | 
            any | 
            |
location | 
            Location | 
            |
platformLocation | 
            PlatformLocation | 
            |
urlCodec | 
            UrlCodec | 
            |
locationStrategy | 
            LocationStrategy | 
            
Methods
| 
         
         onChange()
          | 
      ||||||
|---|---|---|---|---|---|---|
Registers listeners for URL changes. This API is used to catch updates performed by the AngularJS framework. These changes are a subset of the   | 
      ||||||
        
          | 
      
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   | 
           
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).
| 
         
         $$parse()
          | 
      |||
|---|---|---|---|
Parses the provided URL, and sets the current URL to the parsed result.  | 
      |||
        
          | 
      
url | 
            string | 
            The URL string.  | 
           
| 
         
         $$parseLinkUrl()
          | 
      ||||||
|---|---|---|---|---|---|---|
Parses the provided URL and its relative URL.  | 
      ||||||
        
          | 
      
url | 
            string | 
            The full URL string.  | 
           
relHref | 
            string | 
            A URL string relative to the full URL string. Optional. Default is   | 
           
Returns
boolean
| 
         
         absUrl()
          | 
      
|---|
Retrieves the full URL representation with all segments encoded according to rules specified in RFC 3986.  | 
      
        
          | 
      
 | 
      
| 
         
         url()
          | 
      |||
|---|---|---|---|
| 
         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 | 
            
Returns
this
// given URL http://example.com/#/some/path?foo=bar&baz=xoxo
let url = $location.url();
// => "/some/path?foo=bar&baz=xoxo"| 
         
         protocol()
          | 
      
|---|
Retrieves the protocol of the current URL.  | 
      
        
          | 
      
 | 
      
| 
         
         host()
          | 
      
|---|
Retrieves the protocol of the current URL.  | 
      
        
          | 
      
In contrast to the non-AngularJS version   | 
      
| 
         
         port()
          | 
      
|---|
Retrieves the port of the current URL.  | 
      
        
          | 
      
 | 
      
| 
         
         path()
          | 
      |||
|---|---|---|---|
| 
         Retrieves the path of the current URL, or changes the path and returns a reference to its own instance. 
          | 
      |||
        
          | 
      
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"| 
         
         search()
          | 
      |||||||||
|---|---|---|---|---|---|---|---|---|---|
         
          | 
      
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'}| 
         
         hash()
          | 
      |||
|---|---|---|---|
| 
         Retrieves the current hash fragment, or changes the hash fragment and returns a reference to its own instance. 
          | 
      |||
        
          | 
      
hash | 
            string | number | 
            
Returns
this
// given URL http://example.com/#/some/path?foo=bar&baz=xoxo#hashValue
let hash = $location.hash();
// => "hashValue"| 
         
         replace()
          | 
      
|---|
Changes to   | 
      
        
          | 
      
| 
         
         state()
          | 
      |||
|---|---|---|---|
| 
         Retrieves the history state object when called without any parameter. 
          | 
      |||
        
          | 
      
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–2023 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
 https://v14.angular.io/api/common/upgrade/$locationShim