javascript - Angular 常数在另一个模块的配置阶段未定义

标签 javascript angularjs

我有以下代码来描述我的主要 i18n 模块:

angular
  .module('myApp.i18n', ['pascalprecht.translate', 'myApp.i18n.constants'])
  .config(config);

config.$inject = ['$translateProvider', 'crTranslations'];
function config($translateProvider, crTranslations) {
    $translateProvider.translations('sr-latn', crTranslations.sr);
    $translateProvider.translations('en', crTranslations.en);
    $translateProvider.preferredLanguage('sr-latn');
};

我还有另一个模块,其中包含以下代码:

angular
    .module('myApp.i18n.constants', [])
    .constant("crTranslations", crTranslations);

var crTranslations = {
    "en": {
        //english translations
    },
    "sr": {
        //serbian translations
    }
}

我已将两个脚本文件包含在我的 index.html 中,并且两个模块都已加载(主模块之前的常量),但 crTranslations 常量在配置函数中未定义。

知道为什么吗?

最佳答案

它与 Angular 模块的管理方式无关。 var crTranslations.constant("crTranslations", crTranslations) 语句之前声明,因为 JS hoisting ,但仅在此之后才分配给对象。

关于javascript - Angular 常数在另一个模块的配置阶段未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32850595/

相关文章:

AngularJS SEO htaccess : redirect root domain to snapshot

c# - 为什么我的提交按钮无法触发 Javascript MVC?

javascript - 最好的 javascript 压缩器/编译器/混淆器?

php - 试图找到一个 "backdoor"到一个网站的分享/+1/绊倒的数量

java - 统一认证

angularjs - Angular 1.5 组件与指令 ng-transclude

angularjs - AngularJS 表达式中的双管道 (||)

javascript - 如何从 Angular 模板中通过他的 ID 获取 DOM 元素?

javascript - 具有良好 JS 实践的 MVC 5 Web 应用程序(没有 Typescript,您可以使用 ES 2015)

angularjs - 是否可以在 AngularJS 中将注入(inject)的依赖项与自定义参数混合使用?