我正在尝试显示用户在特定测验中所做的错误答案。但它不会在我的HTML中显示数据。我在这里做错了什么?
在我的HTML上:
<ion-slide *ngFor="let incorrect of wrongAnswers;let i=index">
<ion-label>{{i+1}}</ion-label>
<h5>{{incorrect.questionA}}</h5>
<h5>{{incorrect.choice}}</h5>
<h5>{{incorrect.answer}}</h5>
<button ion-button (click)="error()"></button>
</ion-slide>
我的打字稿:
wrongAnswers: any[] = [];
if (answer.correct == false) {
this.wrongAnswers.push([{
questionA: question.questionText,
choice: answer.selected,
answer: answer.answer
}]);
}
在我的控制台上,这是显示的内容:
答案 0 :(得分:1)
您正试图将 array
推送到现有数组,如果您真的想这样做,请使用 concat
this.wrongAnswers.concat([{
questionA: question.questionText,
choice: answer.selected,
answer: answer.answer
}]);
如果您想推送一个对象,请移除 []
,以便推送该对象
this.wrongAnswers.push({
questionA: question.questionText,
choice: answer.selected,
answer: answer.answer
});
答案 1 :(得分:0)
使用Array.prototype.push
时数组引用不会改变,因此角度更改检测不知道更改。
而且你正在将一个数组推入你的数组而不是一个简单的对象。
在向数组添加项目时使用Array.prototype.concat
创建新引用:
this.wrongAnswers = this.wrongAnswers.concat({
questionA: question.questionText,
choice: answer.selected,
answer: answer.answer
});