Я пытаюсь отобразить список разговоров в моем приложении Angular, а затем отобразить сообщения, содержащиеся в этих различных беседах под каждым Заголовок разговора .
Вот мой последний код-
HTML:
<div
class="card"
style="width: 18rem;"
*ngFor="let conversation of myConversations"
>
<div class="card-body">
<h5 class="card-title">{{ conversation.conversationTitle }}</h5>
<h6 class="card-subtitle mb-2 text-muted">
Conversation ID: {{ conversation.conversationId }}
</h6>
<p *ngFor="let message of myConversationMessages" class="card-text">
{{ message.messageText }}
</p>
</div>
TS:
myConversations: IConversation[] = [];
myConversationMessage: IConversationMessages = {
conversationId: 0,
messageId: 0,
messageText: ''
};
myConversationMessages: IConversationMessages[] = [];
constructor(private conversationService: ConversationService) {}
ngOnInit() {
this.conversationService.getConversations().subscribe(conversations => {
this.myConversations = conversations;
this.displayMessages();
});
}
displayMessages() {
for (let i of this.myConversations) {
for (let j of i.messages) {
this.myConversationMessages.push({
conversationId: i.conversationId,
messageId: j.messageId,
messageText: j.messageText
});
}
}
console.log(this.myConversationMessages);
}
Это то, что я могу отображать в данный момент:

У каждого разговора есть своя карточка, но сообщения повторяются для всех разговоров независимо от того, к какому разговору они подключены.
Я думаю, что мне нужно внести некоторые изменения во внутренний ngFor , но я не совсем уверен, какое изменение сделать.Любые идеи о том, какие изменения необходимы?Спасибо!
Также вот соответствующий JSON:
[
{
"conversationId": 1,
"conversationTitle": "My first convo",
"messages": [
{
"messageId": 1,
"messageText": "Hi"
},
{
"messageId": 2,
"messageText": "Hello"
}
]
},
{
"conversationId": 2,
"conversationTitle": "My second convo",
"messages": [
{
"messageId": 1,
"messageText": "test"
},
{
"messageId": 2,
"messageText": "testing"
}
]
}
]