我已经创建了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仍然没有描述,所以任何人都有建议我该怎么做?在进阶阶段谢谢。
发布于 2017-11-18 19:28:49
如果可能,我会将您的JSON对象属性重命名为"question1“、"question2”等。为了“质疑”,否则你实际上是在迭代一个由不同对象组成的数组,这只会让事情变得更加困难。
<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,您可以选择要显示的迭代对象的属性。
发布于 2017-11-18 19:44:44
在显示数组之前过滤数组是很好的。
它是这个例子的第一个适当的值。您可以修改条件以查找全部或部分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)
https://stackoverflow.com/questions/47365440
复制相似问题