Ember.js 在生成期间在ember cli应用程序中使用环境值
我想根据生成环境设置RestaAdapter主机 我假设该值可以存储在Ember.js 在生成期间在ember cli应用程序中使用环境值,ember.js,ember-cli,Ember.js,Ember Cli,我想根据生成环境设置RestaAdapter主机 我假设该值可以存储在config/environment.js中,如下所示: // app/adapters/application.js: import DS from "ember-data"; export default DS.RESTAdapter.extend({ host: window.MyAppENV.APP.API_HOST }); if(环境===“开发”){ ENV.API_http://localhost:80
config/environment.js
中,如下所示:
// app/adapters/application.js:
import DS from "ember-data";
export default DS.RESTAdapter.extend({
host: window.MyAppENV.APP.API_HOST
});
if(环境===“开发”){
ENV.API_http://localhost:8080';
}
如果(环境==‘生产’){
ENV.API_http://api.myserver.com';
}
但是我不确定在构建过程中如何将信息插入
adapter/application.js
。您在config/environment.js
中这样定义设置:
// snip
APP: {
// Here you can pass flags/options to your application instance
// when it is created
API_HOST: 'http://192.168.1.37:3000' // default setting
}
};
if (environment === 'development') {
ENV.APP.LOG_TRANSITIONS = true;
ENV.APP.API_HOST = 'http://192.168.1.37:3000'; // override
}
然后,您可以在其他文件中使用该设置,如下所示:
// app/adapters/application.js:
import DS from "ember-data";
export default DS.RESTAdapter.extend({
host: window.MyAppENV.APP.API_HOST
});
将MyApp
替换为您的应用程序
使用ember--environment
选项切换到生成环境:
ember serve --environment production
或
我还没有看到是否有一种方法可以动态地提供价值,但是您当然可以提供您想要的任意多个环境
更新:为了完整性而添加,并且根据Weston的评论,记录了此功能。您所拥有的正是我所需要的。动态可能有误导性,我的意思是在构建过程中选择环境。现在我知道该问什么了,我在@Millisami上找到了文档,我已经更新了上面关于当前机制的答案。它更改为0.0.47也可以看到:我一定是做错了什么,但是当我引用window.EmberENV.APP.API_HOST时,我得到了错误“无法读取未定义的属性”API_HOST“。已定义window.EmberENV,但未定义window.EmberENV.APP。我错过了什么?