Class Location

private
import Location from '@ember/routing/location';

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

Implementations

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

See HashLocation. See HistoryLocation. See NoneLocation. See 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.

Example:

import HistoryLocation from '@ember/routing/history-location';

export default class MyHistory {
  implementation = 'my-custom-history';

  constructor() {
    this._history = HistoryLocation.create(...arguments);
  }

  create() {
    return new this(...arguments);
  }

  pushState(path) {
     this._history.pushState(path);
  }
}

Show:

Methods

No documented items

Properties

No documented items

Events

No documented items