/ / angularjs: gettext funktioniert nicht in ngSwitch - angularjs, gettext, ng-switch, angular-gettext

angularjs: gettext funktioniert nicht in ngSwitch - angularjs, gettext, ng-switch, angular-gettext

Ich versuche Gettext in Kombination mit ngSwithc wie folgt zu verwenden:

<ANY ng-switch="expression">
<ANY ng-switch-when="matchValue1" translate>...</ANY>
<ANY ng-switch-when="matchValue2" translate>...</ANY>
<ANY ng-switch-default translate>...</ANY>
</ANY>

Hier ist ein Kinderspiel, das das Problem demonstriert. Der Fehler, den ich bekomme, ist

Error: [$compile:multidir] Multiple directives [ngSwitchWhen, translate] asking for transclusion on: <div ng-switch-when="opt0" translate="">

Irgendwelche Vorschläge, wie ich Gettext in Kombination mit ngSwitch nutzen kann?

Antworten:

3 für die Antwort № 1

Einfache Lösung ist Bewegung translate Attribut zu einem anderen Tag innerhalb des switch Stichworte


1 für die Antwort № 2

Ich habe dies auf eine etwas andere Art und Weise gelöst, indem ich einen Übersetzungsdienst und dergleichen in Anspruch genommen habe.

<div>
<select class="form-control" id="selectLocale" ng-model="selectedLocale"
ng-options="locale as translate(locale.name) for locale in locales">
</select>
</div>

Dadurch konnte ich eine Funktion für den $ scope hinzufügen, um die übersetzte Zeichenfolge durch Aufruf zu erhalten

$scope.translate = function(str) {
return LanguageService.getTranslatedString(str);
};

Jedes Mal, wenn das select das Array durchläuft, ruft es diese Funktion auf, um die Zeichenfolge für Sie zu übersetzen. Weitere Informationen zum ausgewählten Tag finden Sie unter Auschecken a AngularJS: API: select Direktive in der Dokumentation.

Bitte besuchen Sie meinen Blogeintrag a Angular-GetText-Snippets für detailliertere Informationen.