【问题标题】:How to us ng-Repeat for angular translate for array objects?如何使用 ng-Repeat 对数组对象进行角度转换?
【发布时间】:2017-07-07 02:45:45
【问题描述】:

我目前正在使用来自 Pascal Precht 的插件 angular translate 进行 Angular 项目。我有一个常见问题页面,其中有一个答案选项卡。我想要实现的是对问题有一个动态的价值。这样我就可以为这些问题设置一个循环,这些问题将作为 Json 数组保存在翻译文件中。这是我的示例 json 文件。

"FAQS_QUESTION"  : [
   {
     "question" : "Question 1?",
     "answer"   : "Answer 1 "
   },
   {
     "question" : "Question 2?",
     "answer"   : "Answer 2" 
   },
   {
     "question" : "Question 3?",
     "answer"   : "Answer 3" 
   }
]

我尝试了下面的代码,但它不起作用。我得到一个“angular.js:14525 FAQS_QUESTION 的翻译不存在”

ul( ng-repeat="thumbnail in 'FAQS_QUESTION' | translate ")
   li 
       | {{thumbnail.question}}
       | {{thumbnail.answer}}

我也尝试将它加载到我的控制器中,但没有成功

$translate('FAQS_QUESTION').then(function (translations) {
    console.log(translations.questions);
}, function (translationIds) {
    console.log(translationIds);
});

我找到了一个解决方法,实现是这样的:

ul(ng-init="count = ('FAQS_QUESTION_COUNT' | translate)")
  li(ng-repeat="item in getQuestionCount(count) track by $index")
     p(translate="FAQS_QUESTION.{{$index}}.question")
     p(translate="FAQS_QUESTION.{{$index}}.answer")

它解决了我的问题。但是为每个 Iteration 指示计数对于维护来说是一件乏味的事情。由于我们计划为每个问题设置一个部分

谁能帮我解决这个问题?我不确定我是否感谢您的所有帮助。谢谢

【问题讨论】:

    标签: javascript angularjs arrays json angular-translate


    【解决方案1】:

    在这个sn-p中

    ul( ng-repeat="thumbnail in 'FAQS_QUESTION' | translate ")
       li 
           | {{thumbnail.question}}
           | {{thumbnail.answer}}
    

    您的值 'FAQS_QUESTION' 只是一个普通字符串,因此您没有引用您的数据。此外,我相信translate-filter 不适用于集合。

    相反,请尝试执行以下操作:

    ul( ng-repeat="thumbnail in FAQS_QUESTION")
       li 
           | {{thumbnail.question | translate}}
           | {{thumbnail.answer | translate}}
    

    【讨论】:

    • 感谢您的回复。是的,也试过这个,但它没有显示任何数据。
    • 您的范围内是否有一个名为FAQS_QUESTION 的变量?可以分享一下控制器吗?
    • 不,这个变量在我的翻译Json中。
    • 然后只需将 FAQS_QUESTION 替换为您分配给翻译 json 的范围变量。我假设您已经将此 json 加载到某个角度控制器中。
    • 我相信您在这里尝试做的事情超出了翻译库的预期用途。它的目的是对纯字符串进行单次翻译,而您想迭代指定语言的字符串集合。您可以采用不同的方法,只需使用 $http-service 加载 json,然后根据所选语言加载不同的文件。
    猜你喜欢
    • 2016-03-28
    • 1970-01-01
    • 2013-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-17
    • 1970-01-01
    相关资源
    最近更新 更多