angularjs:gettext在ngSwitch中不起作用

时间:2013-11-11 13:13:01

标签: angularjs gettext ng-switch angular-gettext

我正在尝试将gettext与ngSwithc结合使用,如下所示:

<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是一个证明这个问题的方法。我得到的错误是

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

有关如何将gettext与ngSwitch结合使用的任何建议吗?

2 个答案:

答案 0 :(得分:3)

简单修复是将translate属性移动到switch标记

中的另一个标记

答案 1 :(得分: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上添加一个函数,通过调用

来获取翻译后的字符串
$scope.translate = function(str) {
    return LanguageService.getTranslatedString(str);
};

现在每次select遍历数组时,它都会调用此函数为你翻译字符串。有关select标记的更多信息,请查看文档中的a AngularJS: API: select directive

请访问我的博客文章a Angular-GetText Snippets了解更多详情。