2017-06-21 16 views
0

2つの言語が使用される角度アプリがあります。私は$ translate.instant( 'id')を使用しました。いくつかの変数をバインドするために私のコントローラーで。しかし、私が$ translate.use( 'jp')を使って翻訳言語を変更すると、コントローラの変数は変更されません。

私はHTMLで 'translate'フィルタを使用しました。コントローラ変数は変更されません。それを実現する方法はありますか?

以下のコードを使用して初期化されます。

$translateProvider.useStaticFilesLoader({ 
    prefix: '/translations/', 
    suffix: '.json' 
}); 
$translateProvider.preferredLanguage('en'); 
$translateProvider.fallbackLanguage('en'); 
$translateProvider 
    .useSanitizeValueStrategy('escape'); 

コントローラでは、以下のコードを使用しました。 vm.userName = $ translate.instant( 'USER_NAME');

言語の変更は、以下のコード

$translate.use('jp'); 

ユーザ名doesntの変化を利用しました。

+0

サンプルコードはありますか? –

+0

が編集されました。今すぐご確認ください。 –

+0

あなたの問題を解決できましたか? –

答えて

0

これはあなたの言語ファイルが完全にあなたが$translate.instant('USER_NAME')

を呼び出している時間によってロードされていない場合、翻訳だけで表現(図)であるので、それはまたあなたのコントローラ上の翻訳を行うにはをお勧めしませんされて起こり、あなたのコントローラーロジックには扱わないでください。あなたは単にあなたがこれを行うことができuserNameを翻訳したい場合は

(あなたはすでにそれを行っていると仮定):

この問題を詳しく見ては、次のSOの質問に記載されている

<p>{{USER_NAME | translate}}</p>

RobinvanBaalenの答え@

Correct use for angular-translate in controllers

チェック@PascalPrecht(角-翻訳の作者)

関連する問題