如何在ember JS应用程序中设置全局变量

时间:2016-05-25 17:52:53

标签: ember.js

在我的Ember应用程序启动之前,我想根据URL动态设置变量:

// Dummy example
if (window.location.hostname == 'awesomewebsite.com') {
  // Set a "global variable" called town
}

我希望有可能依赖该变量来做一些事情(在组件,模板等中)。

最好的方法是什么?

1 个答案:

答案 0 :(得分:5)

您可以使用初始化程序将变量添加到窗口或ember环境对象。

https://guides.emberjs.com/v2.5.0/applications/initializers/

窗口对象的初始化程序:

export function initialize() {
  if (window.location.hostname == 'awesomewebsite.com') {
    // Set a "global variable" called town
    window.myApp.town= 'foo.bar';
  }
};

export default {
  name: 'init-environment',
  initialize: initialize
};

ember环境对象的初始化程序: (https://guides.emberjs.com/v2.5.0/configuring-ember/configuring-your-app/

import ENV from 'your-application-name/config/environment';

export function initialize() {
  if (window.location.hostname == 'awesomewebsite.com') {
    // Set a "global variable" called town
    ENV.App.town = 'foo.bar';
  }
};

export default {
  name: 'init-environment',
  initialize: initialize
};