我尝试在我的Ember CLI应用中配置适配器,以根据环境使用不同的主机。在开发中,我希望它是默认的当前主机(让我通过--proxy
选项进行自定义,但在制作中我知道它将是http://some.url
。
我尝试将ENV
导入我的应用适配器:
// adapters/application.js
import DS from "ember-data";
import ENV from "../../config/environment";
export default DS.ActiveModelAdapter.extend({
host: ENV.host
});
但我收到tmp/tree_merger../config/environment.js
不存在的错误。
答案 0 :(得分:21)
你非常接近。你应该只在目录树中向上走一步(当你在路线,控制器等时,你需要上升两个)。
// adapters/application.js
import DS from "ember-data";
import ENV from "../config/environment";
export default DS.ActiveModelAdapter.extend({
host: ENV.host
});
文档为here。
请注意,您可能不应该直接在ENV上定义自己的变量。在config/environment.js
var ENV = {
...
APP: {
// Here you can pass flags/options to your application instance
// when it is created
host: 'some_host'
}
};
以相同的方式访问
import ENV from '../config/environment';
export default DS.ActiveModelAdapter.extend({
host: ENV.APP.host
});
答案 1 :(得分:0)
这似乎有效
// adapters/application.js
import DS from "ember-data";
export default DS.ActiveModelAdapter.extend({
host: window.MyAppENV.host
});
虽然我不确定这是不是最好的方法。