2016-09-23 7 views
0

コントローラで言語を変更する際に問題があります。別の言語を選択すると、テンプレートの値が正しい翻訳を変更しますが、コントローラの翻訳は変わりません。
この問題を解決するにはどうすればよいですか?angle translateは、言語を変更したときにコントローラの翻訳を更新しません。

私はuseStaticFilesLoaderを使用します。

.config(function($translateProvider) { 
    $translateProvider.useStaticFilesLoader({ 
    prefix: 'lang/', 
    suffix: '.json' 
    }); 

$translate(['safemode_title','safemode_message','server_error']).then(function (translations) { 
    $scope.safemode_title = translations.safemode_title; 
    $scope.safemode_message = translations.safemode_message; 
    $scope.serverError = translations.server_error; 
}); 

答えて

0

ユーザーが言語を変更するときに理解できるようになりますので、$translateChangeStartイベントをリッスンするようにしてください。だから、

のために、コードを変更します(あまりにも及びフィルタ) - 翻訳ngのため

$rootScope.$on('$translateChangeStart', function (event, a) { 
     $translate(['safemode_title','safemode_message','server_error']).then(function (translations) { 
      $scope.safemode_title = translations.safemode_title; 
      $scope.safemode_message = translations.safemode_message; 
      $scope.serverError = translations.server_error; 
     }); 
}); 

それはあなたのために自動的にそれをしないので、あなたは、このリスナーを必要としません。

わかりやすく、$rootScope依存性を注入することを忘れないでください。

0

デフォルト言語以外の言語をクリックしても変更されないため、十分に機能します。しかし、私がデフォルトlangに戻ったとき、翻訳はデフォルト以外のものに変更されます。

関連する問題