Ember CLI应用程序中基于环境的主机

时间:2014-08-11 16:58:48

标签: ember-cli

我尝试在我的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不存在的错误。

2 个答案:

答案 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

中使用ENV.APP
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
});

虽然我不确定这是不是最好的方法。