Skip to content

Instantly share code, notes, and snippets.

@ivanvanderbyl
Last active January 31, 2016 17:55
Show Gist options
  • Star 40 You must be signed in to star a gist
  • Fork 11 You must be signed in to fork a gist
  • Save ivanvanderbyl/4560416 to your computer and use it in GitHub Desktop.
Save ivanvanderbyl/4560416 to your computer and use it in GitHub Desktop.
Using Ember initializers and injections to setup the `currentUser` within your app.
App.AccountEditRoute = Ember.Route.extend({
setupController: function(controller) {
controller.set('content', this.get('currentUser'));
}
});
%noscript
.container
.alert
%strong
Javascript is disabled!
The AppName UI is built entirely in Javascript, as such you need to enable
Javascript in your browser to continue.
:javascript
var currentUser = jQuery.parseJSON('#{current_user_json}');
Ember.Application.initializer({
name: "currentUser",
initialize: function(container, application) {
var store = container.lookup('store:main');
var obj = store.load(CrashLog.User, currentUser);
container.optionsForType('user', { instantiate: false, singleton: true });
container.register('user', 'current', CrashLog.User.find(obj.id));
}
});
Ember.Application.initializer({
name: "injectCurrentUser",
after: 'currentUser',
initialize: function(container) {
container.injection('controller:application', 'currentUser', 'user:current');
container.typeInjection('route', 'currentUser', 'user:current');
}
});
@tomash
Copy link

tomash commented Jun 3, 2014

Remember to tell currentUser Initializer to fire up after loading store, otherwise store will be undefined

Ember.Application.initializer({
  name: 'currentUser',
  after: 'store',

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment