2015-09-29 25 views
0

我有下面的代碼來描述我的主要國際化模塊:角不變另一個模塊的配置階段未定義

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常量在配置函數中未定義。

任何想法爲什麼?

回答

2

這與Angular模塊的管理方式無關。在.constant("crTranslations", crTranslations)聲明之前聲明var crTranslations,由於JS hoisting,但僅在此之後才分配給對象。