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