Javascript 如何将参数从.run传递到.config?

Javascript 如何将参数从.run传递到.config?,javascript,angularjs,Javascript,Angularjs,我从事angularjs ui路线项目。 在.run()core中,我将一些变量放入命名的clientid中,以$rootScope 有时我需要使用.config()core中存储的变量 我知道我不能在.config()core中使用$rootScope服务 所以我的问题是如何将clientid变量从$rootScope传递到.config()。也许我可以使用其他服务?当然,使用$rootScope是错误的决定。因为没有人愿意污染全球范围,还有其他原因。您可以考虑创建一个常量,称为设置,并在任何

我从事angularjs ui路线项目。 在
.run()
core中,我将一些变量放入命名的
clientid
中,以
$rootScope

有时我需要使用
.config()
core中存储的变量

我知道我不能在
.config()
core中使用
$rootScope
服务


所以我的问题是如何将
clientid
变量从
$rootScope
传递到
.config()
。也许我可以使用其他服务?

当然,使用$rootScope是错误的决定。因为没有人愿意污染全球范围,还有其他原因。您可以考虑创建一个常量,称为<代码>设置<代码>,并在任何需要的地方使用它,如<代码> >运行< /COD>块,<代码>配置> <代码>阶段,<代码>服务< /代码>,<代码>提供者>代码>等

angular.module('mainModule').constant('settings', {
   clientId: 1123 //some inital value
})
尽管您可以从配置阶段重写此值

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);
}
注意:选择
常量
的原因是,这种味道可以在任何角度组件中注入


这取决于你是如何编写服务的,你可以查看这个答案以了解更多信息。谢谢你的帖子。应用程序模块应该是主模块吗?@Michael yupe<代码>配置&
运行
在应用程序启动之前,应该在主模块上应用blog来配置和初始化一些东西。Pankaj,我可以在运行核心中使用常量吗?