2016-12-21 11 views
1

角型アプリケーションにAngular Translateがインストールされています。App.Configの角度変換セット変数

これは私のapp.jsファイル(のみ興味一部)である:私がする必要がどのような

.config(function($stateProvider, $urlRouterProvider, $ionicConfigProvider, $ionicFilterBarConfigProvider, $httpProvider, $translateProvider) { 

    $translateProvider.translations('it', {  
     SEARCH: 'Cerca', 
    }) 

    $translateProvider.translations('en', {  
     SEARCH: 'Search', 
    }) 

    //... Various .state(... 

}); 

//Translate config 
$translateProvider.preferredLanguage('en'); 

$ionicFilterBarConfigProvider.placeholder("Search"); 

は、最後の行を変更することで、"Search"は、翻訳に基づいて、翻訳から注意しなければなりません選択された。

私はこれを試してみた:

var SRC_WORD = $filter('translate')('SEARCH'); 
$ionicFilterBarConfigProvider.placeholder(SRC_WORD) 

は働いていません。

は、私はまた、この試みたが、それは動作しませんので、当然のは、HTML内ではありません。

$ionicFilterBarConfigProvider.placeholder("{{'SEARCH' | translate }}") 

ありません運、どこ私が間違っているの?

答えて

0

サービスプロバイダ($ionicFilterBarConfigProvider)はコンフィギュレーションフェーズでのみ使用でき、サービスインスタンス($ionicFilterBarConfig)は実行フェーズでのみ使用できます。

この分離の意味は、設定フェーズ(configブロック)を使用してインスタンス化される前にサービスインスタンスを構成することです。

いくつかのケースでは、実行フェーズで動的に設定するには、インスタンスとしてのサービスプロバイダを公開することが可能である:

app.config(function ($provide, $ionicFilterBarConfigProvider) { 
    $provide.value('$ionicFilterBarConfigProvider', $ionicFilterBarConfigProvider); 
}); 

app.controller(..., function ($filter, $ionicFilterBarConfigProvider) { 
    var SRC_WORD = $filter('translate')('SEARCH'); 
    $ionicFilterBarConfigProvider.placeholder(SRC_WORD) 
}); 

このメソッドは、保証なしで来て、完全に特定のサービスの内部で何が起こるかに依存します。