AngularJS: API: ng/service/$location


$location

  1. - $locationProvider
  2. - service in module ng

The $location service parses the URL in the browser address bar (based on the window.location) and makes the URL available to your application. Changes to the URL in the address bar are reflected into $location service and changes to $location are reflected into the browser address bar.

The $location service:

  • Exposes the current URL in the browser address bar, so you can
    • Watch and observe the URL.
    • Change the URL.
  • Synchronizes the URL with the browser when the user
    • Changes the address bar.
    • Clicks the back or forward button (or clicks a History link).
    • Clicks on a link.
  • Represents the URL object as a set of methods (protocol, host, port, path, search, hash).

For more information see Developer Guide: Using $location

Dependencies

Methods

  • absUrl();

    This method is getter only.

    Return full url representation with all segments encoded according to rules specified in RFC 3986.

    Returns

    string

    full url

  • url([url], [replace]);

    This method is getter / setter.

    Return url (e.g. /path?a=b#hash) when called without any parameter.

    Change path, search and hash, when called with parameter and return $location.

    Parameters

    Param Type Details
    url
    (optional)
    string

    New url without base prefix (e.g. /path?a=b#hash)

    replace
    (optional)
    string

    The path that will be changed

    Returns

    string

    url

  • protocol();

    This method is getter only.

    Return protocol of current url.

    Returns

    string

    protocol of current url

  • host();

    This method is getter only.

    Return host of current url.

    Returns

    string

    host of current url.

  • port();

    This method is getter only.

    Return port of current url.

    Returns

    Number

    port

  • path([path]);

    This method is getter / setter.

    Return path of current url when called without any parameter.

    Change path when called with parameter and return $location.

    Note: Path should always begin with forward slash (/), this method will add the forward slash if it is missing.

    Parameters

    Param Type Details
    path
    (optional)
    string

    New path

    Returns

    string

    path

  • search(search, [paramValue]);

    This method is getter / setter.

    Return search part (as object) of current url when called without any parameter.

    Change search part when called with parameter and return $location.

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

    Parameters

    Param Type Details
    search stringObject.<string>Object.<Array.<string>>

    New search params - string or hash object.

    When called with a single argument the method acts as a setter, setting the search component of $location to the specified value.

    If the argument is a hash object containing an array of values, these values will be encoded as duplicate search parameters in the url.

    paramValue
    (optional)
    stringArray.<string>boolean

    If search is a string, then paramValue will override only a single search property.

    If paramValue is an array, it will override the property of the search component of $location specified via the first argument.

    If paramValue is null, the property specified via the first argument will be deleted.

    If paramValue is true, the property specified via the first argument will be added with no value nor trailing equal sign.

    Returns

    Object

    If called with no arguments returns the parsed search object. If called with one or more arguments returns $location object itself.

  • hash([hash]);

    This method is getter / setter.

    Return hash fragment when called without any parameter.

    Change hash fragment when called with parameter and return $location.

    Parameters

    Param Type Details
    hash
    (optional)
    string

    New hash fragment

    Returns

    string

    hash

  • replace();

    If called, all changes to $location during current $digest will be replacing current history record, instead of adding new one.

Events

  • $locationChangeStart

    Broadcasted before a URL will change. This change can be prevented by calling preventDefault method of the event. See $rootScope.Scope for more details about event object. Upon successful change $locationChangeSuccess is fired.

    Type:

    broadcast

    Target:

    root scope
  • $locationChangeSuccess

    Broadcasted after a URL was changed.

    Type:

    broadcast

    Target:

    root scope