【问题标题】:angularjs: gettext not working in ngSwitchangularjs:gettext 在 ngSwitch 中不起作用
【发布时间】:2013-11-11 13:13:01
【问题描述】:

我正在尝试将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 是一个演示问题的 jsfiddle。我得到的错误是

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

有什么建议可以将 gettext 与 ngSwitch 结合使用吗?

【问题讨论】:

    标签: angularjs gettext ng-switch angular-gettext


    【解决方案1】:

    简单的解决方法是将translate 属性移动到switch 标签内的另一个标签

    【讨论】:

      【解决方案2】:

      我使用翻译服务等以稍微不同的方式解决了这个问题。

      <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 标记的更多信息,请查看文档中的 a AngularJS: API: select directive。

      请访问我的博客条目a Angular-GetText Snippets 了解更多详细信息。

      【讨论】:

        猜你喜欢
        • 2016-12-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多