因爲我已將角度翻譯從2.9.0升級到2.15.2我無法在rootScope中使用$ translate.use()函數(應用程序.run)
$ translate.use()的值在加載頁面時未定義。這是我用來加載語言和更改語言的代碼。
$rootScope.changeLanguage = function (langKey) {
if(langKey.length == 2) {
$translate.use(langKey.toLowerCase()+"_"+langKey.toUpperCase());
$rootScope.language = langKey;
} else if(langKey.length == 5) {
$translate.use(langKey);
$rootScope.language = langKey.substring(0,2);
}
};
$rootScope.changeLanguage($translate.use());
此代碼給了我這個錯誤:
Uncaught TypeError: Cannot read property 'length' of undefined at m.e.changeLanguage (app.js:184)
(精縮代碼,所以$ rootScope更名爲我)
此日誌行給了我下面的:
console.log("trans", $translate.versionInfo(), $translate.use());
trans 2.15.2 undefined
我該如何獲得這項工作再次?
分享您的完整的控制檯錯誤 – VicJordan
@VicJordan添加一些額外的代碼 – NVO
[文檔](https://angular-translate.github.io/docs/#/api/pascalprecht.translate。 $ translate#methods_use)說:*如果沒有或者給出了一個虛假的鍵,它返回當前使用的語言鍵。如果設置$ translate尚未完成,則返回的字符串將不確定。*您可能需要使用onReady()。 –