在 Ember 1.12.0 和 Ember CLI 中使用实例初始化程序

Posted

技术标签:

【中文标题】在 Ember 1.12.0 和 Ember CLI 中使用实例初始化程序【英文标题】:Using Instance Initializers with Ember 1.12.0 and the Ember CLI 【发布时间】:2015-07-26 07:50:32 【问题描述】:

将我的应用更新到 Ember 1.12.0 后,我注意到很多这样的警告:

lookup 在注册表中被调用。 initializer API 不再接收容器,您应该使用instanceInitializer 从容器中查找对象。详情请见http://emberjs.com/guides/deprecations#toc_deprecate-access-to-instances-in-initializers。

这似乎是由于使用了初始化程序中的container.lookup 造成的,这在旧版本的 Ember 中很好。

从有关 Ember 1.12.0 的博客文章中,似乎在基于全局的 Ember 应用程序中,创建 Initializer 和 Instance Initializer 的区别在于使用

App.initializer(
    ...
);

App.instanceInitializer(
    ...
);

但是,它似乎没有描述如何在 Ember CLI 中使用实例初始化程序。有人知道怎么用吗?

编辑: 原来所有东西的浏览器插件都阻止了我在原始博客文章中需要的信息。我会把它留在这里,以防它对任何人有用,但在 CLI 常规初始化程序中进入

app/initializers/__my__initializer.js

虽然实例初始化器的定义类似于

app/instance-initializers/__my__initializer.js

编辑 2:如果有人因为遇到同样的问题而来到这里,this issue on the Ember.js repo 会引用此问题并包含一个指向演示问题的 jsfiddle 的链接。

【问题讨论】:

谢谢哥们,我确实认为一旦遵循 ember-cli 的命名约定,使用 app/instance-initializers/__my__initializer.js 是显而易见的。很高兴得到确认!顺便说一句,堆栈社区严格按照问题提供答案。您提到的编辑部分,请将其添加为anwer。 【参考方案1】:

原来所有东西的浏览器插件都阻止了我在原始博客文章中需要的信息。我会把它留在这里,以防它对任何人都有用,但在 CLI 中,常规初始化程序进入内部

app/initializers/__my__initializer.js

虽然实例初始化器的定义类似于

app/instance-initializers/__my__initializer.js

【讨论】:

以上是关于在 Ember 1.12.0 和 Ember CLI 中使用实例初始化程序的主要内容,如果未能解决你的问题,请参考以下文章

使用 ember-cli-mirage 测试错误响应

模拟使用 ember-cli-storybook 中的 ember-ajax 发布和获取数据的 ember 服务的最佳方法是啥?

toastr 和 ember.js

在ember中运行时创建模型属性

没有 Ember 数据的 Ember

我在 Ember-CLI 中将 Ember-I18n 的翻译放在哪里?