Parent: ember

Ember.Location returns an instance of the correct implementation of the location API.


You can pass an implementation name (hash, history, none, auto) to force a particular implementation to be used in your application.

See Ember.Location.HashLocation. See Ember.Location.HistoryLocation. See Ember.Location.NoneLocation. See Ember.Location.AutoLocation.

Location API

Each location implementation must provide the following methods:

  • implementation: returns the string name used to reference the implementation.
  • getURL: returns the current URL.
  • setURL(path): sets the current URL.
  • replaceURL(path): replace the current URL (optional).
  • onUpdateURL(callback): triggers the callback when the URL changes.
  • formatURL(url): formats url to be placed into href attribute.
  • detect() (optional): instructs the location to do any feature detection necessary. If the location needs to redirect to a different URL, it can cancel routing by setting the cancelRouterSetup property on itself to false.

Calling setURL or replaceURL will not trigger onUpdateURL callbacks.

Custom implementation

Ember scans app/locations/* for extending the Location API.


import Ember from 'ember';

const { HistoryLocation } = Ember;

export default class MyHistory {
  implementation: 'my-custom-history',
  constructor() {
    this._history = HistoryLocation.create(...arguments);
  create() {
    return new this(...arguments);
  pushState(path) {

Classes and Namespaces

© 2017 Yehuda Katz, Tom Dale and Ember.js contributors
Licensed under the MIT License.