Ember.js 如何在Ember CLI加载项中获取包含应用程序的命名空间?
我正在创建一个Ember CLIEmber.js 如何在Ember CLI加载项中获取包含应用程序的命名空间?,ember.js,ember-cli,ember-addon,Ember.js,Ember Cli,Ember Addon,我正在创建一个Ember CLIEmber加载项,在加载项的文件中,我需要访问应用程序的配置。我无法知道包含此插件的应用程序将命名为什么,因此我不能像在应用程序本身中那样简单地从“app name/config/environment”导入ENV 如何从插件本身访问使用ember插件的应用程序的命名空间,以便从该应用程序导入内容?一种可能性是使用初始值设定项: Ember.Application.initializer({ name: 'my-component', initia
Ember加载项
,在加载项的文件中,我需要访问应用程序的配置。我无法知道包含此插件的应用程序将命名为什么,因此我不能像在应用程序本身中那样简单地从“app name/config/environment”导入ENV
如何从插件本身访问使用
ember插件的应用程序的命名空间,以便从该应用程序导入内容?一种可能性是使用初始值设定项:
Ember.Application.initializer({
name: 'my-component',
initialize: function(container, app) {
// you have access to 'app' here...
}
});
要获取配置,不需要获取名称空间。
插件所需的任何设置都应添加到config/environment.js
中的ENV.APP
例如,如果您想要一个MY\u APP\u 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');
}
};
您可以在中看到一个示例,说明我无法可靠地访问应用程序或容器。例如,一个简单的utils/assethost.js
如何关心ENV.environment
?