我正在创建一个Ember CLI ember-addon,在我的插件文件中,我需要访问应用程序的配置。我没有办法知道包括这个插件的应用程序将被命名为什么,所以我不能像在应用程序本身中那样简单地执行import ENV from 'app-name/config/environment'。
如何从插件本身访问使用ember-addon的应用程序的名称空间,以便可以从该应用程序导入内容?
发布于 2014-09-03 03:41:07
您应该不需要为了获取配置而获取名称空间。
您的插件所需的任何设置都应该添加到config/environment.js的ENV.APP中。
例如,如果你想要一个MY_APP_KEY设置,你需要类似这样的东西
config/environment.js中添加了ENV.APP.MY_APP_KEY = 'ABCDEF';。
然后,您可以使用初始化器从应用程序实例中读取属性,并通过执行以下操作将其注入您的插件中:
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 Adapter中完成此操作的示例
发布于 2014-09-03 03:38:06
一种可能性是使用initializer
Ember.Application.initializer({
name: 'my-component',
initialize: function(container, app) {
// you have access to 'app' here...
}
});https://stackoverflow.com/questions/25630711
复制相似问题