I am using the HashLocation extension to implement the hashbang URL type for Ember.js.
Here is the code snippet:
(function() { var get = Ember.get, set = Ember.set; Ember.Location.registerImplementation('hashbang', Ember.HashLocation.extend({ getURL: function() { return get(this, 'location').hash.substr(2); }, setURL: function(path) { get(this, 'location').hash = "!"+path; set(this, 'lastSetURL', "!"+path); }, onUpdateURL: function(callback) { var self = this; var guid = Ember.guidFor(this); Ember.$(window).bind('hashchange.ember-location-'+guid, function() { Ember.run(function() { var path = location.hash.substr(2); if (get(self, 'lastSetURL') === path) { return; } set(self, 'lastSetURL', null); callback(location.hash.substr(2)); }); }); }, formatURL: function(url) { return '#!'+url; } })); })();
I use this while opening a router:
App.Router.reopen({ location: 'hashbang' });
However, when I launch the application, I find the following flaw:
DEPRECATION: Using the Ember.Location.registerImplementation is no longer supported. Register your custom location implementation with the container instead.
I can not find any information on how to do this. Does anyone have any snippets of implementing what I would have to do?
source share