もちろん、$ rootScopeを使用すると間違った決定になります。だれも地球規模の範囲を汚染することを好まないので、他の理由もあります。あなたが設定相からこの値をオーバーライドすることができますがあなたは、など
angular.module('mainModule').constant('settings', {
clientId: 1123 //some inital value
})
、settings
と呼ばれる定数を作成することを検討し、あなたが.run
ブロック、config
相、service
、provider
のように任意の角度成分に必要な場所でそれを利用することができます。
angular.module('mainModule').config(['settings', configFn])
function configFn(settings){
//routes registers here
//other awesome stuf
//set clientId here
//Assuming your clientId will be available, no async operation.
if(someValue === 1)
settings.clientId = 'asd12';
else
settings.clientId = 'asd34';
}
その後、あなたのrun
ブロック
angular.module('mainModule').run(['settings', runBlock])
function runBlock(settings){
console.log(settings);
}
注の内側にその定数を使用することができます。constant
は選択の背後にある理由、この味は、任意の角度成分で注射用として利用することができます。あなたがサービスを書いている方法によって異なり
は、あなたはポストのためhttps://stackoverflow.com/questions/15937267/inject-service-in-app-config –