$ translate.instant übersetzt Werte in der AngularJS-Komponente beim Start der Komponente nicht

8

Mit Angular Translate und $ translate.instant () Methode Ich habe die Select-Komponente von AngularJS mit automatischer Umschaltung zwischen den Sprachen erstellt:

%Vor%

Wie Sie auf Plunker sehen können: Angular JS wählen Sie mit automatisierten Übersetzungen aus . Das Problem ist, dass select s Optionen als undefined angezeigt werden, bis ich die zweite Option wähle. Dann funktioniert alles, und ich kann zwischen englischen und polnischen Übersetzungen von Optionen wechseln. Ich habe sogar versucht, mit $onChanges hook auf die erste Änderung zu warten und wenn die Änderung eingetreten ist, starte $digest mit $timeout :

%Vor%

Aber immer wieder muss ich die zweite Option in select auswählen, damit es funktioniert. Fehle ich etwas? Ich wäre dankbar, wenn mir jemand helfen würde, danke im Voraus.

    
Radek Anuszewski 11.09.2016, 20:22
quelle

2 Antworten

6

$ translate.instant () ist sich der Tatsache nicht bewusst, dass die Übersetzung möglicherweise nicht vollständig geladen wird.

Laut Dokumentation :

  

Gibt eine Übersetzung sofort aus dem internen Ladezustand zurück   Übersetzung.

Wenn Sie sich also nicht auf $ translate.instant () verlassen, können Sie den Übersetzungsfilter (der intern eine Überwachung verwendet) auch wie folgt verwenden:

%Vor%

Ein vollständiges Beispiel finden Sie hier:

Zypern

    
d.h. 21.09.2016, 17:14
quelle
2

Ziehen Sie in Betracht, $onInit anstelle von $onChanges auszuprobieren. Wie aus der Dokumentation:

  

$ onInit () - Wird auf jedem Controller aufgerufen, nachdem alle Controller auf einem Element erstellt und ihre Bindungen initialisiert wurden (und vor den Vor / Nach-Verknüpfungsfunktionen für die Anweisungen für dieses Element). Dies ist ein guter Platz, um Initialisierungscode für Ihren Controller zu setzen.

%Vor%

Siehe: Ссылка

    
JcT 24.09.2016 11:21
quelle