В моем приложении Ioni c / Angular я пытаюсь отобразить список бесед между пользователями на странице Conversation_List .
Вот модели:
Модель разговора:
import { Message } from './message.model';
export class Conversation {
constructor(
public id: string,
public userId: string,
public mechanicId: string,
public messages: Message[],
) { }
}
Модель сообщения:
export class Message {
constructor(
public id: string,
public text: string,
public userId: string,
public timestamp: string
) { }
}
Модель пользователя:
export class User{
constructor(
public id: string,
public name: string,
public userType: string
) { }
}
В настоящее время я могу отображать Данные, хранящиеся в моей переменной loadedConversations ниже.
Однако вместо отображения userId, Я хотел бы использовать этот идентификатор для поиска моих loadedUsers и отображения имени, связанного с этим идентификатором.
Например, для беседы C1 задан UserId = abc1. Я хотел бы использовать этот идентификатор пользователя для поиска моих пользователей и отображения их имени.
Вот код в Службе бесед:
private _conversations: Conversation[] = [
new Conversation(
'c1',
'abc1',
'def2',
[
new Message('mess1', 'Test message', 'abc1', '01/01/2020'),
new Message('mess2', 'Another message', 'def2', '02/01/2020')
]
),
new Conversation(
'c2',
'xuz1',
'ghi2',
[
new Message('mess1', 'my message', 'xuz1', '05/03/2020'),
new Message('mess2', 'more messages', 'ghi2', '08/03/2020')
]
)
];
get conversations() {
return [...this._conversations];
}
А вот Conversation_List TS:
export class ConversationListPage implements OnInit {
loadedConversations: Conversation[];
constructor(private conversationsService: ConversationsService) { }
ngOnInit() {
this.loadedConversations = this.conversationsService.conversations;
}
}
Conversation_List HTML:
<ion-item *ngFor="let conversation of loadedConversations">
<ion-label>
<h2>USER ID: {{ conversation.userId}}</h2>
<p>MECHANIC ID: {{ conversation.mechanicId }}</p>
<p>MESSAGES: {{ conversation.messages }}</p>
</ion-label>
</ion-item>
Есть идеи, как лучше всего это сделать?