2016-05-25 7 views
3

にグローバル変数を設定する方法を、私は動的URLを依存する変数を設定したいと思います:私のエンバーアプリケーションが起動する前に燃えさしJSアプリケーション

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

私はその変数に依存する可能性を持つようにしたいです後で(コンポーネント、テンプレートなどで)いくつかのものをやります。

これを行うにはどうすればよいでしょうか?

答えて

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 
}; 

イニシャライザ: (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 
}; 
+0

あなたが値を取得する方法を示すために、ダミーのコードを追加することができます私が環境環境オブジェクトを使用している場合はルート/コンポーネント内にありますか?後であなたの答えを受け入れるでしょう:) –

+0

あなたの環境を からインポートする 'あなたのアプリケーション名/設定/環境'からインポートする; それを 'ENV.App.town'のような変数として使ってください特定のファイルに保存します。 – EnricoB

関連する問題