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

Mat*_*ahl 15 ember.js ember-cli

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

if (environment === 'development') {
  ENV.APP.AuthURL = 'http://localhost:5000/';
}
Run Code Online (Sandbox Code Playgroud)

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

rog*_*rog 29

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

import config from '../config/environment';
Run Code Online (Sandbox Code Playgroud)

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

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

export default Ember.Controller.extend({
  foo: config.APP.AuthURL
});
Run Code Online (Sandbox Code Playgroud)

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

{{foo}}
Run Code Online (Sandbox Code Playgroud)


jab*_*ipt 7

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

  1. import ENV from 'your-application-name/config/environment';
    • your-application-name应该是什么在modulePrefix关键config/environment.jsname关键package.json
  2. 通过 Ember.getOwner(this).resolveRegistration('config:environment');

第一个假设您正在使用 Ember CLI,在配置您的应用程序下的 ember 文档中有详细说明:

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

ENV 对象包含三个重要的键:

  • EmberENV 可用于定义 Ember 功能标志(请参阅功能标志指南)。
  • APP 可用于将标志/选项传递给您的应用程序实例。
  • environment 包含当前环境的名称(开发、生产或测试)。

您可以通过从 your-application-name/config/environment 导入来访问应用程序代码中的这些环境变量。