Package ember-routing
Parent:
ember
Ember.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 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 intohref
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 tofalse
.
Calling setURL or replaceURL will not trigger onUpdateURL callbacks.
Custom implementation
Ember scans app/locations/*
for extending the Location API.
Example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
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) { this._history.pushState(path); } } |