将ember-js升级到1.12.0并将ember-cli升级到0 0.2.5

时间:2015-05-22 06:02:27

标签: javascript ember.js upgrade ember-cli

我正在升级我的 Emberjs =>从1.10.0到1.12.0 Ember-cli =>从0.1.12到0.2.5

虽然我正在弄清楚大部分的弃用,但很少有我无法理解的。 PFB相同

  1. 弃用:不推荐使用Ember.required,因为其行为不一致且不可靠。这在哪里使用以及如何改变它?
  2. 弃用:在注册表上调用了lookupFactory。该 initializer API不再接收容器,您应该使用 从instanceInitializer查找容器中的对象。 我确实理解这个问题,但我的初始化程序根本不使用查找。 PFB我的初始化程序的代码。
  3. //应用程序/初始化/ 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');
    }
    

    //应用程序/初始化/ 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. 弃用:使用{{each}}的上下文切换形式是 弃用。请改用块参数形式({{#each bar as |foo|}})。看到 http://emberjs.com/guides/deprecations/#toc_more-consistent-handlebars-scope 更多细节。 我在此理解,{{#each foo in bar itemController="abc"}}应更改为{{#each bar itemController="abc" as |foo|}}。但我的代码如下所示,没有"in",这意味着使用此上下文!

      {{#each paged itemController="class.adm.man.stop-term"}} 我怎么能改变这个?

1 个答案:

答案 0 :(得分:2)

点击列表:

  1. 好像它是一个与余烬相关的数据issue。如果没有,我确定还有另一个插件使用它,但不是你。因此,你无能为力。
  2. 同样的事情。我已经引入了一个例子作为评论。你的代码看起来对我很好,所以,我相信,你也无法做到。
  3. Ember试图制作更加一致和明确的范围。 in部分目前尚未弃用,因此最简单的解决方案是添加虚拟in部分,例如{{#each page in paged itemController="class.adm.man.stop-term"}}。但总的来说,我建议使用更复杂的解决方案 - 创建ItemList组件并将其重构为:
  4. {{#each paged as |page|}}
      {{item-list model=page}}
    {{/each}}