【问题标题】:How to iterate elements from an array and translate them using angular-translate如何从数组中迭代元素并使用 angular-translate 翻译它们
【发布时间】:2015-12-18 01:21:20
【问题描述】:

我有一个 json 文件,其中包含一些变量,包括一个数组。在我的模板中,我使用 ng-repeat 遍历这个数组并显示每个元素。数组中元素的数量可以改变,因为 json 是通过 Web 服务调用检索的。

现在我想使用 angular-translate 来启用多种语言。我正在尝试为此使用 angular-translate-loader-url。

问题是我不知道如何将它与 ng-repeat 一起使用。可以通过指定它们的键来访问这些值。在通常情况下,您知道密钥和密钥的数量,但在我的情况下并非如此,因为它都是动态的。我真的不在乎键名。我需要的是一个包含所有这些键的范围变量,以便我可以迭代。我看不到在范围变量中获取数据的方法...

我可以看到根本问题是我将字符串放在有序数组中,而 angular-translate 似乎不支持这一点。什么是好的解决方案?

【问题讨论】:

标签: javascript angularjs json angular-translate


【解决方案1】:

您将要创建一个自定义过滤器,然后将过滤器传递给您的中继器...

例如...

myApp.filter('translateFilter', function($translate){
    return function(input, param){
        //Iterate through each item, translate using $translate, then return the translated items
    }
});

然后使用您可以随心所欲地使用您的过滤器:

<li ng-repeat="car in cars | translateFilter:search">
    {{ car.name | translate }}
</li> 

等等

完整示例请参见以下内容:AngularJS and i18n : apply ng-repeat filters after translating list items properties

【讨论】:

  • 这意味着我需要一个单独的 ws 调用来获取翻译,对吧?一份用于数据,一份用于翻译?
猜你喜欢
  • 2015-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多