我有以下代码描述了我的主要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常量。
知道为什么吗?
答案 0 :(得分:2)
与Angular模块的管理方式无关。由于JS hoisting,var crTranslations
语句之前已声明.constant("crTranslations", crTranslations)
,但仅在此之后被分配给对象。