2016-12-21 2 views
1

Ich habe eine Angular App mit Angular Translate installiert.Angular Translate Set Variable in App.Config

Dies ist meine app.js-Datei (nur interessiert Teil):

.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"); 

Was muss ich tun, ist die letzte Zeile zu ändern, die "Search" aus der Umrechnung genommen werden muss, auf der Grundlage der Übersetzung ausgewählt.

Ich habe dies versucht:

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

Problem.

Ich habe auch schon versucht, diese, aber natürlich ist innerhalb des HTML nicht, so dass es nicht funktioniert:

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

Kein Glück, wo mache ich falsch?

Antwort

0

Dienstanbieter ($ionicFilterBarConfigProvider) sind nur in der Konfigurationsphase verfügbar, und Serviceinstanzen ($ionicFilterBarConfig) sind nur in der Ausführungsphase verfügbar.

Die Bedeutung dieser Trennung ist, dass die Konfigurationsphase (config Block) verwendet wird, um Dienstinstanzen zu konfigurieren, bevor sie instanziiert werden.

In einigen Fällen ist es möglich, Service-Provider als Instanz zu belichten es in Laufphase dynamisch zu konfigurieren:

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

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

Diese Methode kommt ohne Garantie und völlig davon abhängig, was im Innern bestimmten Dienst geschieht.