【问题标题】:Ember 1.12 deprecation warning about The `initializer` API关于 `initializer` API 的 Ember 1.12 弃用警告
【发布时间】:2015-08-01 23:56:18
【问题描述】:

我正在将 ember/ember-cli 应用程序升级到 ember 1.12。我现在收到以下弃用警告:

DEPRECATION: `lookup` 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. 
See http://emberjs.com/guides/deprecations#toc_deprecate-access-to-instances-in-initializers for more details.

查看示例,我看到如下内容:

App.initializer({
  name: "clock",

  initialize: function(container, application) {
    application.register("clock:main", Clock);
    var clock = container.lookup("clock:main");
    clock.setStartTime(Date.now());
  }
});

应改为:

App.initializer({
  name: "clock",

  initialize: function(registry, application) {
    application.register("clock:main", Clock);
  }
});

App.instanceInitializer({
  name: "clock",

  initialize: function(instance) {
    var clock = instance.container.lookup("clock:main");
    clock.setStartTime(Date.now());
  }
});

但我根本没有类似的代码。 ember-cli 0.2.5 应用程序中的什么会导致此警告?

【问题讨论】:

    标签: ember.js ember-cli


    【解决方案1】:

    Ember Data 很可能是导致问题的原因,我昨天在我的一个应用程序上看到了它,您可以查看堆栈跟踪并可能看到谁是罪魁祸首。

    https://github.com/emberjs/data/issues/3051

    【讨论】:

    • 我有点困惑。似乎是说这个问题已经在 ember-data 中得到修复。我正在使用 ember-data 1.0.0-beta.17。这会自行消失吗?
    • 如果你在 github 问题中看起来更低,他们说它还没有修复,是的,一旦他们修复了 ED,它就会消失,除非你尝试更新 Ember 不带 Ember 数据
    【解决方案2】:

    此问题已在 ember-data v1.0.0-beta.19 中得到修复,我在我的 bower.json 文件中使用 v1 更改了 ember-data 的版本。 0.0-beta.19,然后我运行 bower install,最后运行我的 ember 应用程序。已弃用的警告消息已消失。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-03
      • 1970-01-01
      • 2023-03-25
      • 2013-11-03
      • 1970-01-01
      相关资源
      最近更新 更多