Correct way to access current application configuration

前端 未结 3 724
一整个雨季
一整个雨季 2021-02-05 10:39

I added some configurations to myapp/config/environment:

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


        
相关标签:
3条回答
  • 2021-02-05 11:08

    There are a couple modern ways, as of this writing, when trying to access it from your application:

    1. import ENV from 'your-application-name/config/environment';
      • your-application-name should be what's in the modulePrefix key of config/environment.js and the name key of package.json
    2. Via Ember.getOwner(this).resolveRegistration('config:environment');

    Number one assumes you're using Ember CLI and is detailed in the ember docs under Configuring Your App:

    Ember CLI ships with support for managing your application's environment. Ember CLI will setup a default environment config file at config/environment. Here, you can define an ENV object for each environment, which are currently limited to three: development, test, and production.

    The ENV object contains three important keys:

    • EmberENV can be used to define Ember feature flags (see the Feature Flags guide).
    • APP can be used to pass flags/options to your application instance.
    • environment contains the name of the current environment (development,production or test).

    You can access these environment variables in your application code by importing from your-application-name/config/environment.

    0 讨论(0)
  • 2021-02-05 11:12

    While @rog's answer is correct and will work for all cases where you are trying to access the config from your application there are some edge cases (such as accessing config from an addon) that it will not work for.

    I would recommend checking out the ember-get-config addon: https://www.emberobserver.com/addons/ember-get-config

    Once you install ember-get-config you can import your config using the following code:

    import config from 'ember-get-config';
    const { AuthURL } = config;
    // now you have access to AuthURL                                                                     
    0 讨论(0)
  • 2021-02-05 11:13

    You can access it by importing environment.js using the line below:

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

    For example, lets say you want to access your configuration in a controller. This is what it would look like:

    import Ember from 'ember';
    import config from '../config/environment';
    
    export default Ember.Controller.extend({
      foo: config.APP.AuthURL
    });
    

    If you need to, you can now access it in your controller's template using:

    {{foo}}
    
    0 讨论(0)
提交回复
热议问题