2017-12-12 5 views
0

私は2つのファイルAngularディレクティブとコントローラを持っています。 コントローラーには翻訳機能が組み込まれていますが、そこでやりたがっている翻訳のために命令に注入する必要があります。 問題は、翻訳モジュールを注入しようとするたびに実行されないことです。 (。私はそれは問題ではない推測している、別のファイルに定義された文字列を持っている) 私のコードは、これまでのようになります。 角度インジェクションはリンク指令に翻訳されます

appmod = angular.module('directive', []); 
appmod.directive('gvPivot', ['$translate', function() { 
    return { 
      restrict : "E", 
      replace : true, 
      scope : { 
       name : "@", 
       data : "=" 
      }, 
      template : '', 
      link : function(scope, iElement, iAttrs, controller, transcludeFn, translate) { 
       scope.$watch("data", function(newValue, oldValue, translate) { 
        console.log('{{ "Translated text" | translate}}'); 

私が期待した結果が、それは、「翻訳されたテキストをログに記録していることです"と言います。

しかし、それはログに記録すること

{{ "Text to translate" | translate}} 

である私は、私はおそらくあまりにも多くの間違った場所であまりにも頻繁に翻訳注入されていることを承知していますが、今のように私はちょうど散弾銃のアプローチを行うと、しようとしていますどこにでも挿入することができます。

答えて

0

$ filterを注入することによって、テキストを翻訳する別の方法が見つかりました。

appmod.directive('gvPivot', ['$translate', '$filter', function($translate, $filter) { 
return { 
     restrict : "E", 
     replace : true, 
     scope : { 
      name: "@", 
      data : "=" 
     }, 
     template : '', 
     link : function(scope, iElement, iAttrs, controller, transcludeFn) { 
      console.log($filter('translate')('translate this')); 
関連する問題