【问题标题】:Accessing constant or cookie value in configuration phase of angularjs在angularjs的配置阶段访问常量或cookie值
【发布时间】:2017-05-15 09:26:18
【问题描述】:

我想在 angularjs 的配置阶段访问存储在 Cookie 中的值,我该怎么做?是否可以?我目前在 app.config(function(..., $translateProvider){...}) 中有以下代码,运行良好:

var defaultLang = 'de-DE';
var moduleName = { moduleName: 'UICaption.Resources' };

    $translateProvider.useLoader('customLocalizationLoaderFactory',
    {        
        moduleName, url: resourceUrl
    });

    $translateProvider.preferredLanguage(defaultLang);

我想在 app.config() 中实现类似(下面的代码),但我认为只有提供者在配置阶段被注册和访问,所以我应该如何通过 $cookies 服务访问配置阶段存储在 cookie 中的值或任何其他方式:

 var defaultLang = $cookies.get('ASPNET_CULTURE' === 'de-DE') ? 'de-DE' : 'en-US';
    var moduleName = { moduleName: 'UICaption.Resources' };

    $translateProvider.useLoader('customLocalizationLoaderFactory',
    {
        moduleName, url: resourceUrl
    });

    $translateProvider.preferredLanguage(defaultLang);

请指导是否有其他相同的方法?

谢谢。

【问题讨论】:

  • This 旧答案可能对您有所帮助。
  • 对于常量,一种方法是将它们放在单独的模块中,如this answer中所述,可以注入到当前模块的配置/控制器/其他任何地方
  • Redd 共享的链接中的一个答案(手动注入 cookie)对我有用。谢谢。

标签: angularjs cookies angularjs-config


【解决方案1】:

This 旧答案可能会对您有所帮助。

更一般地说,$cookies 应该在 .run() 阶段进行检索。 我建议您在 .config() 中加载所有 $translate 部分和语言,并在 .run() 中使用 cookie 设置活动语言。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 2014-10-12
    • 2014-05-15
    • 1970-01-01
    • 1970-01-01
    • 2013-09-29
    • 1970-01-01
    相关资源
    最近更新 更多