如何使用 - 重复数组对象的角度转换?

时间:2017-07-07 02:45:46

标签: javascript angularjs arrays json angular-translate

我目前正在使用Pascal Precht的插件角度转换工作Angular项目。我有一个FAQ页面,其中有一个选项卡供您回答。我想要实现的是为问题提供动态值。因此,我将只为这些问题提供一个循环,这些问题将作为Json数组存储在翻译文件中。这是我的示例json文件。

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

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

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")

它解决了我的问题。但是,为每次迭代指示计数,维护将是一项繁琐的工作。因为我们计划为每个队列设置一个部分

任何人都可以帮我解决这个问题吗?我不确定是否感谢你的帮助。谢谢

1 个答案:

答案 0 :(得分:0)

在此代码段中

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

您的值'FAQS_QUESTION'只是一个纯字符串,因此您不会引用您的数据。此外,translate - 过滤器不适用于我认为的集合。

相反,尝试做这样的事情:

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