首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将参数从.run传递给.config?

如何将参数从.run传递给.config?
EN

Stack Overflow用户
提问于 2017-06-28 05:41:17
回答 1查看 50关注 0票数 1

我在我的天使用户界面路线项目上工作。在.run()核心中,我在名为clientid的变量中添加了一些变量到$rootScope

在某种程度上,我需要在.config()核心中使用存储的变量。

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

因此,我的问题是如何将clientid变量从$rootScope传递给.config().Maybe,我可以使用任何其他服务吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-28 05:53:13

当然,使用$rootScope是错误的决定。因为没有人喜欢污染全球范围,也有其他原因。您可以考虑创建一个名为settings的常量,并在任何角度组件(如.run块、config相位、serviceprovider等)中使用它。

代码语言:javascript
复制
angular.module('mainModule').constant('settings', {
   clientId: 1123 //some inital value
})

尽管您可以从配置阶段重写此值。

代码语言:javascript
复制
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块中使用该常量。

代码语言:javascript
复制
angular.module('mainModule').run(['settings', runBlock])

function runBlock(settings){
   console.log(settings);
}

备注:选择constant的原因是,这种味道可以在任何角度组件中注射使用。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44794421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档