Javascript 如何在Ember中导入全局变量?

Javascript 如何在Ember中导入全局变量?,javascript,ember.js,ember-data,ember-cli,Javascript,Ember.js,Ember Data,Ember Cli,我是Ember的新手,正在尝试在config/environment文件中使用一个全局变量,然后将其导入到几个适配器和模型中。我需要在一个地方更改变量,而不是编辑每个文件。 在本例中,全局变量是一个带有api服务器地址的字符串。变量名为apiRoot。我尝试使用以下配置,但不起作用。请告诉我需要做什么,如果这在余烬是可能的,或者可能有另一种方式?谢谢你的帮助 环境文件: 'use strict'; module.exports = function(environment) { let E

我是Ember的新手,正在尝试在config/environment文件中使用一个全局变量,然后将其导入到几个适配器和模型中。我需要在一个地方更改变量,而不是编辑每个文件。 在本例中,全局变量是一个带有api服务器地址的字符串。变量名为apiRoot。我尝试使用以下配置,但不起作用。请告诉我需要做什么,如果这在余烬是可能的,或者可能有另一种方式?谢谢你的帮助

环境文件:

'use strict';

module.exports = function(environment) {
  let ENV = {
    modulePrefix: 'front',
    environment,
    rootURL: '/',
    locationType: 'auto',
    EmberENV: {
      FEATURES: {
      },
      EXTEND_PROTOTYPES: {
        Date: false
      }
    },

    APP: {
    }
  };

  if (environment === 'development') {
  }

  if (environment === 'test') {
    ENV.locationType = 'none';
    ENV.APP.LOG_ACTIVE_GENERATION = false;
    ENV.APP.LOG_VIEW_LOOKUPS = false;

    ENV.APP.rootElement = '#ember-testing';
    ENV.APP.autoboot = false;
  }

  if (environment === 'production') {
  }

  ENV.apiRoot = 'http://localhost:5555/api';

  return ENV;
};
适配器:

import RESTAdapter from '@ember-data/adapter/rest';
import ENV from '../../config/environment';

export default RESTAdapter.extend({
  host: ENV.apiRoot,
  pathForType() {
    return "posts";
  }
});

问题是您的相对路径可能引用了appfolder之外的/config/environment文件。但它应该引用应用程序文件夹中的config/environment,这是一个文件系统中不存在的文件

原因是您没有从文件系统导入config/environment文件。因为浏览器中不存在该文件。相反,ember cli将在构建时执行该文件,并仅将生成的JSON发送到浏览器,使其在config/environment中可用。但对于浏览器中的所有路径,app文件夹是项目的根目录。您无法导入应用文件夹之外的内容


因此,ember cli生成的config/environment JSON基本上会被移动到app文件夹中。

这应该会起作用。导入路径正确吗?您可以尝试从“您的应用程序名称/config/environment”导入环境;。你为什么认为它不起作用?你能验证导入的环境是否未定义吗?哦,当你更改配置/环境时,你需要重新启动ember服务器,我相信这很奇怪。我以为您只需要注册文件的路径,但是余烬需要项目的名称。@Kiten两者都在工作。允许从自己的包中命名导入是对官方解析算法的补充。我认为你的相对路径是错误的。从节点解析的角度来看,config/environment是相对于您的应用程序文件夹的。这让人困惑,因为文件系统布局不是这样的。因此,要从app/adapters/application.js导入config/environment,相对导入路径是../config/environment。