正确访问当前应用程序配置的方法

时间:2015-03-28 23:30:59

标签: ember.js ember-cli

我向myapp/config/environment添加了一些配置:

if (environment === 'development') {
  ENV.APP.AuthURL = 'http://localhost:5000/';
}

现在,要访问此配置,我应该使用某种方法还是直接访问window.Myapp

3 个答案:

答案 0 :(得分:29)

您可以使用以下行导入environment.js来访问它:

import config from '../config/environment';

例如,假设您要在控制器中访问配置。这就是它的样子:

import Ember from 'ember';
import config from '../config/environment';

export default Ember.Controller.extend({
  foo: config.APP.AuthURL
});

如果需要,您现在可以使用以下方法在控制器模板中访问它:

{{foo}}

答案 1 :(得分:3)

在撰写本文时,尝试从您的应用程序访问它时,有几种现代方法:

  1. import ENV from 'your-application-name/config/environment';
    • your-application-name应该是modulePrefix的{​​{1}}键和config/environment.js的{​​{1}}键中的内容
  2. 通过name

第一个假设您正在使用Ember CLI,并且在Configuring Your App下的ember文档中进行了详细说明:

  

Ember CLI随附支持管理应用程序的   环境。 Ember CLI将在以下位置设置默认环境配置文件   配置/环境。在这里,您可以为每个对象定义一个ENV对象   环境,目前仅限于三种:开发,测试,   和生产。

     

ENV对象包含三个重要键:

     
      
  • EmberENV可用于定义Ember功能标志(请参阅功能标志指南)。
  •   
  • APP可用于将标志/选项传递到您的应用程序实例。
  •   
  • environment包含当前环境的名称(开发,生产或测试)。您可以访问这些环境   通过从中导入应用程序代码中的变量   您的应用程序名称/配置/环境。
  •   

答案 2 :(得分:1)

@rog的答案是正确的,并且适用于所有尝试从应用程序访问配置的情况,在某些情况下(例如从插件访问配置)不适。

我建议您检出ember-get-config插件:https://www.emberobserver.com/addons/ember-get-config

安装ember-get-config后,您可以使用以下代码导入配置:

import config from 'ember-get-config';
const { AuthURL } = config;
// now you have access to AuthURL 

这将在您的应用程序中起作用,并且如果您构建将被您的应用程序使用的插件也将起作用