| OLD | NEW |
| (Empty) |
| 1 | |
| 2 (function(scope) { | |
| 3 var MoreRouting = scope.MoreRouting = scope.MoreRouting || {}; | |
| 4 MoreRouting.HashDriver = HashDriver; | |
| 5 | |
| 6 /** | |
| 7 * TODO(nevir): Docs. | |
| 8 */ | |
| 9 function HashDriver() { | |
| 10 MoreRouting.Driver.apply(this, arguments); | |
| 11 this._bindEvents(); | |
| 12 this._read(); | |
| 13 } | |
| 14 HashDriver.prototype = Object.create(MoreRouting.Driver.prototype); | |
| 15 | |
| 16 // By default, we prefer hashbang; but you can prefix with any string you wish. | |
| 17 HashDriver.prototype.prefix = '!/'; | |
| 18 | |
| 19 HashDriver.prototype.urlForParts = function urlForParts(parts) { | |
| 20 return '#' + MoreRouting.Driver.prototype.urlForParts.call(this, parts); | |
| 21 }; | |
| 22 | |
| 23 HashDriver.prototype.navigateToUrl = function navigateToUrl(url) { | |
| 24 window.location.hash = url; | |
| 25 }; | |
| 26 | |
| 27 HashDriver.prototype._bindEvents = function _bindEvents() { | |
| 28 window.addEventListener('hashchange', this._read.bind(this)); | |
| 29 }; | |
| 30 | |
| 31 HashDriver.prototype._read = function _read() { | |
| 32 this.setCurrentPath(window.location.hash.substr(1) || this.prefix); | |
| 33 }; | |
| 34 | |
| 35 })(window); | |
| OLD | NEW |