我正在创建一个 Ember CLI ember-addon
,在我的插件文件中,我需要访问应用程序的配置。我无法知道包含此插件的应用程序将被命名为什么,因此我不能import ENV from 'app-name/config/environment'
像在应用程序本身中那样简单地做。
如何访问正在使用ember-addon
插件本身的应用程序的命名空间,以便我可以从该应用程序导入内容?
我正在创建一个 Ember CLI ember-addon
,在我的插件文件中,我需要访问应用程序的配置。我无法知道包含此插件的应用程序将被命名为什么,因此我不能import ENV from 'app-name/config/environment'
像在应用程序本身中那样简单地做。
如何访问正在使用ember-addon
插件本身的应用程序的命名空间,以便我可以从该应用程序导入内容?
您不需要获取命名空间即可获取配置。
您的插件需要的任何设置都应该添加ENV.APP
到config/environment.js
.
例如,如果您想要一个MY_APP_KEY
设置,则需要将类似
ENV.APP.MY_APP_KEY = 'ABCDEF';
的内容添加到config/environment.js
.
然后,您可以使用初始化程序从应用程序实例中读取属性,并通过执行以下操作将其注入您的插件中......
export default {
name: "my initilizer",
initialize: function(container, app) {
//get you setting off of the app instance
var key = app.get('MY_APP_KEY');
//register it
app.register('config:myAddonKey', key, { instantiate: false });
//inject it where you want to access it
app.inject('route', 'myAddonKey', 'config:myAddonKey');
}
};
您可以在Ember Django 适配器中看到它是如何完成的示例
一种可能性是使用initializer
:
Ember.Application.initializer({
name: 'my-component',
initialize: function(container, app) {
// you have access to 'app' here...
}
});