Depractions while upgrading ember-js to 1.12.0 and ember-cli to 0 0.2.5


#1

I am upgrading my Emberjs => from 1.10.0 to 1.12.0 Ember-cli => from 0.1.12 to 0.2.5

While i am figuring out most of the deprecations there are few which i am not able to understand. PFB the same

  1. DEPRECATION: Ember.required is deprecated as its behavior is inconsistent and unreliable. Where is this used and how to change it?
  2. DEPRECATION: lookupFactory was called on a Registry. The initializer API no longer receives a container, and you should use an instanceInitializer to look up objects from the container.
    I do understand this issue but my initializer does not use lookup at all. PFB the code of my initializer.

//app/initializer/abc

initialize: function(registry, app) {
  app.register('store:main', Store);
  // Inject into each route a store property with an instance of store:main
  app.inject('route', 'store', 'store:main');
  // Inject into each controller a store property with an instance of store:main
  app.inject('controller', 'store', 'store:main');
}

//app/initializer/def

initialize: function(registry, app) {
        // Register the session object.
        app.register('session:main', Session);

        // Inject the session object into all controllers.
        app.inject('controller', 'session', 'session:main');
    }
  1. DEPRECATION: Using the context switching form of {{each}} is deprecated. Please use the block param form ({{#each bar as |foo|}}) instead. See http://emberjs.com/guides/deprecations/#toc_more-consistent-handlebars-scope for more details.
    I understand here that {{#each foo in bar itemController="abc"}} should be changed to {{#each bar itemController="abc" as |foo|}}. But my code is as below and does not have "in", meaning using this context!

    {{#each paged itemController="class.adm.man.stop-term"}} How can i change this?


#2
  1. I don’t think I can help you with this one.
  2. This is likely being caused by a bug in ember-data beta.16+
  3. I think you need to use {{#each paged itemController="class.adm.man.stop-term" as |page|}} see http://emberjs.com/deprecations/v1.x/#toc_deprecations-added-in-1-12

#3
  1. Is there anyone you know to whom i can tag that first question to?
  2. Cool thanks
  3. if i use {{#each paged itemController="class.adm.man.stop-term" as |page|}} then itemController properties wont be called since the context is not “this”, the context is still the parent controller context. Doing {{#each paged itemController="class.adm.man.stop-term" as this}} also didn help!

#4

I hope this helps for 3.

See also http://emberjs.com/api/classes/Ember.Handlebars.helpers.html#toc_wrapping-each-item-in-a-controller


#5

works like a charm. thanks a bunch dpreston