私はangle-translateを2.9.0から2.15.2にアップグレードして以来、私はrootscope(app)で$ 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)は次のように言います:* noまたは偽のキーが与えられている場合は、現在使用されている言語キーを返します。 $ translateの設定が完了していない場合、返される文字列は未定義です*おそらくonReady()を使う必要があります。 –