Próbuję użyć gettext w połączeniu z ngSwithc, jak następuje:
<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>
Tutaj to jsfiddle demonstrujące problem. Otrzymuję błąd
Error: [$compile:multidir] Multiple directives [ngSwitchWhen, translate] asking for transclusion on: <div ng-switch-when="opt0" translate="">
Jakąkolwiek sugestię, w jaki sposób mogę użyć gettext w połączeniu z ngSwitch?
Odpowiedzi:
3 dla odpowiedzi № 1Prosta naprawa to ruch translate
przypisz do innego znacznika wewnątrz switch
tagi
1 dla odpowiedzi nr 2
Rozwiązałem to nieco inaczej, korzystając z usługi tłumaczenia i takiej.
<div>
<select class="form-control" id="selectLocale" ng-model="selectedLocale"
ng-options="locale as translate(locale.name) for locale in locales">
</select>
</div>
Umożliwiło mi to dodanie funkcji w zakresie $ scope, aby uzyskać przetłumaczony ciąg przez wywołanie
$scope.translate = function(str) {
return LanguageService.getTranslatedString(str);
};
Teraz za każdym razem, gdy selektor przechodzi przez macierz, wywoła tę funkcję, aby przetłumaczyć ciąg znaków. Aby uzyskać więcej informacji o tagu select, sprawdź a AngularJS: API: wybierz dyrektywę w dokumentacji.
Odwiedź mój wpis na blogu a Angular-GetText Snippets w celu uzyskania bardziej szczegółowych informacji.