我正在尝试将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结合使用的任何建议吗?
答案 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了解更多详情。