A Flight component for bi-directional handling of push|hash state.
bower install --save flight-historyInitialize and specify routes
var History = require('flight-history');
History.attachTo(window, {
routeBase: '/app', // Prepended to all routes. Default: ''
routes: {'/': 'uiRootNavigation',
'/user/{id}/': 'uiUserPageNavigation'
}
});Using the above snippet as a reference, browser navigation to
-
/app/triggers theuiRootNavigationevent with an empty data object. -
/app/user/1234/triggers theuiUserPageNavigationevent with data object{id: 1234}
Conversely:
- On the
uiRootNavigationevent, the URL/app/will be added to browser history using pushstate (if supported) or hash state - On the
uiUserPageNavigationevent with data{id: 442242}, the URL/app/user/442242/will be added to browser history
Development of this component requires Bower, and preferably Karma to be globally installed:
npm install -g bower karmaThen install the Node.js and client-side dependencies by running the following commands in the repo's root directory.
npm install
bower install- Tests
- Allow regex customization (currently
{thing}is replaced with[\\w\\s\\d-]+for location matching) - Allow splitting triggers into the the event fired on browser navigation and the event that triggers the push|hash state change.