我创建了angularjs应用程序,其中我制作了测验模块,其中问题1-5具有相同的描述,然后问题6-7具有相同的描述,因此我将相同的描述保存到每个问题并在下一个逐个显示它们按钮。现在功能是改变我想在单个页面上显示所以我现在使用ng-repeat问题是问题描述也在重复,所以同样的描述显示我的JSON就像每个1-5个问题
[ {
description:'xxxxxx',
question:'abcd',
correctAnswer:'A',
hasSameDesc:true
},
{
description:'xxxxxx',
question:'pqr',
correctAnswer:'B'
hasSameDesc:true
},
{
description:'xxxxxx',
question:'XYZQ',
correctAnswer:'A'
hasSameDesc:true
}] and so on
现在我想在第一个问题上面显示一次描述,仍然是2-5的问题仍然没有描述 所以任何人都有建议我该怎么做? 比较先进的。
答案 0 :(得分:0)
如果可能,我会将您的JSON对象属性"问题1","问题2"等等重命名为"问题",否则您&# 39;基本上迭代不同对象的数组,这会让事情变得更难。
<div ng-repeat="question in questions track by $index">
<h1 ng-if="$index == 0 || $index == 5"> {{question.description}} </h1>
<span>{{question.question}}</span>
</div>
这接近你的意思吗?基本上使用ng-repeat
,您可以选择要迭代的对象的哪些属性。
答案 1 :(得分:0)
在显示之前过滤数组会很好。
这个例子是第一个适当的值。您可以修改条件以查找完全或部分uniq对象
let data = [ {
description:'xxxxxx',
question1:'abcd',
correctAnswer:'A',
hasSameDesc:true
},
{
description:'xxxxxx',
question2:'pqr',
correctAnswer:'B',
hasSameDesc:true
},
{
description:'xxxxxx',
question3:'XYZQ',
correctAnswer:'A',
hasSameDesc:true
},
{
description:'yyyyy',
question3:'XYZQ',
correctAnswer:'A',
hasSameDesc:true
}];
let uniq = data.filter((elem, index, self) => {
return index == self.findIndex(e => elem.description == e.description)
})
console.log(uniq)