从插件访问Ember环境配置(ENV)?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从插件访问Ember环境配置(ENV)?相关的知识,希望对你有一定的参考价值。
我有一个插件,它在开发和运行时使用不同的主机进行服务。我相信这个解决方案是在应用程序的config / environment.js中定义主机名,并让服务选择如下:
import ENV from '../config/environment';
export default AjaxService.extend({
host: ENV.APP.serviceHost,
...
但是这不起作用,因为它认为environment.js文件的路径在插件的范围内而不是主应用程序。当包含此插件的应用程序的名称未知时,执行此操作的正确方法是什么?
我使用的是Ember 2.11。
答案
我知道有两种方法:
选项1
此插件允许通过注入服务访问配置。它为我解决了同样的问题。
选项2
通过重新导出手动传递配置值。
// my-addon/app/services/my-ajax.js
// import config being in the app namespace
import ENV from '../config/environment';
import Service from 'my-addon/services/my-ajax';
export default Service.extend({
apiURL: ENV.APP.apiURL
});
另一答案
使用最新版本的Ember,您可以从容器中获取环境配置。
Ember.getOwner(this).resolveRegistration('config:environment')
另一答案
我在我的项目中使用了这个包,效果很好:
https://github.com/null-null-null/ember-get-config
以上是关于从插件访问Ember环境配置(ENV)?的主要内容,如果未能解决你的问题,请参考以下文章
在构建期间在 ember-cli 应用程序中使用 ENV 值
如何从 phpunit.xml 而不是应用程序配置文件访问环境变量