У меня есть четыре запроса внутри ngOnInit, как показано здесь:
orders = [];
answers = [];
constructor(
private profileService: ProfilesService,
private storeService: StoreService,
private quizService: QuizService
) { }
ngOnInit(): void {
this.idUser = this.authService.getInfo().user._id
this.profileService.getOrders(this.idUser).subscribe(res => {
if (res['success']) {
this.orders = res['orders'];
this.orders.forEach(order => {
order.products.forEach((product, index) => {
this.storeService.getSingleProduct(product.idProduct).subscribe(res => order.products[index] = res['product'].nameProduct)
});
})
this.profileService.getAnswer(this.idUser).subscribe((answers: any) => {
this.answers = answers.answers;
this.answers.forEach((quiz, index) => {
this.quizService.getSingleQuizById(quiz.idQuiz).subscribe((res: any) => {
this.answers[index].titleQuiz = res.quiz.titleQuiz;
this.answers[index].categoryQuiz = res.quiz.categoryQuiz;
})
});
})
}
})
}
getOrders (): в основном получает заказы от http, и он работает
getSingleQuizById (): получает информационный порядок из http, и он работает
getAnswer: получать все ответы пользователей от idUser
getSingleQuizById: get информация для викторины от idQuiz, которая внутри ответов
* ngFor не отображается, но в ответах нет ошибки
html
<div class="answer" *ngFor="let answer of answers">
<div class="order-body flex-order">
<div class="part-answer">
{{answer.titleQuiz}}
</div>
</div>
</div>
service answer
getAnswer(idUser){
const token = localStorage.getItem(AppUtil.AUTH_TOKEN);
const headers = new HttpHeaders({ 'Authorization': `Bearer ${token}` });
return this.httpClient.get(this.apiUrl + `/answer/${idUser}`, { headers });
}
обновление это еще код html
<div class="card-answer">
<div class="header flex">
<div class="part-answer"></div>
<div class="part-answer">
title Quiz
</div>
</div>
{{ answers | json }}
<div class="answer" *ngFor="let answer of answers">
<div class="answer-body flex-answer">
<div class="part-answer">
test
</div>
<div class="part-answer">
{{ answers | json }}
{{answer.titleQuiz}}
</div>
</div>
</div>
</div>
css частичный ответ
.card-answer .part-answer{
padding: 0 12px;
text-transform: uppercase;
font-weight: 600;
font-size: 13.4px;
flex-basis: 13%;
text-align: center;
word-break: break-word;
}
введите описание изображения здесь