mercredi 24 juin 2015

Instance Initializers in Emberjs

We are getting through the long slog of updating our ember-cli application to its latest iteration. We fell very much behind. I am at the stage where instance initializers have been introduced and I am getting the feeling this is going to break the way in which I have implemented a certain initializer currently.

export function initialize(container, application) {
  var store = container.lookup('store:main');

  // We need a basket to be present when
  // the application loads. Wait for this
  // to happen before continuing.
  application.deferReadiness();

  store.findOrCreateRecord('order', basketToken).then(function(basket) {
    container.register('basket:main', basket, { instantiate: false });
    application.inject('controller:basket', 'model', 'basket:main');

    // Let the application know we have
    // a basket and can continue.
    application.advanceReadiness();
  });
}

What is now recommended is that I split this up into a "normal" initializer to register the basket object and an instance initializer to grab the store and make the call to our API server. Doing this however I would not have access to the registry within the instance initializer to register the returned object from my promise which I would then inject into my controller. I assume I am thinking about this all wrong, but I have not been able to wrap my head around it. Any suggestions how I should by updating this?




Aucun commentaire:

Enregistrer un commentaire