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
:
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.
$ 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:
Ziehen Sie in Betracht, $onInit
anstelle von $onChanges
auszuprobieren. Wie aus der Dokumentation:
%Vor%$ 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.
Siehe: Ссылка
Tags und Links javascript angularjs internationalization angular-translate angularjs-components