2013-11-11 4 views
0

Я пытаюсь использовать Gettext в сочетании с ngSwithc, следующим образом:angularjs: не GetText работает в ngSwitch

<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> 

Here является jsfiddle демонстрирует проблему. Ошибка, которую я получаю:

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

Любое предложение, как я могу использовать gettext в сочетании с ngSwitch?

ответ

3

Простого исправление перемещение translate атрибута в другой тег внутри switch тегов

1

Я решил это слегка иначе использование службы перевода и тому подобной.

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

Это позволило мне добавить функцию на $ рамки, чтобы получить перевод строки по телефону

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

Теперь каждый раз, выберите перебирает массив будет вызывать эту функцию, чтобы перевести строку для тебя. Для получения дополнительной информации о теге select, проверьте в документации документа a AngularJS: API: select directive.

Для получения более подробной информации, пожалуйста, посетите мою запись в блоге a Angular-GetText Snippets.