Я пытаюсь создать приложение Ioni c 5 / Angular со следующими функциями:
- Отображение списка механиков для пользователя
- Пользователь нажимает на механику c чтобы отправить им сообщение (т.е. начать разговор)
На данный момент у меня есть страница Подробности разговора , которая отображает сообщения в рамках существующих разговоров, например:
Conversation-detail.page. html:
<ion-virtual-scroll [items]="loadedMessages" approxItemHeight="72px">
<ion-item-sliding *virtualItem="let message" #slidingItem>
<ion-item>
<ion-label><h2>{{ message.text}}</h2></ion-label>
</ion-item>
</ion-item-sliding>
</ion-virtual-scroll>
Conversation-detail.page.ts:
ngOnInit() {
this.conversation = this.conversationsService.getConversation(paramMap.get('conversationId'));
this.loadedMessages = this.conversation.messages;
}
Вот Conversations.service.ts :
private _conversations: Conversation[] = [
new Conversation(
'conversation1',
'user3',
'user1',
[
new Message('message1', 'Test message', 'user3', '01/01/2020'),
new Message('message2', 'Another message', 'user1', '02/01/2020')
]),
new Conversation(
'conversation2',
'user4',
'user2',
[
new Message('message3', 'my message', 'user4', '05/03/2020'),
new Message('message4', 'more messages', 'user2', '08/03/2020')
])
];
getConversation(id: string) {
return { ...this._conversations.find(conversation => conversation.id === id) };
}
А вот мой Conversation.model.ts & Message.model.ts :
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
) { }
}
Проблема, с которой я сталкиваюсь сейчас, заключается в том, что я пытаюсь создать новый диалог между пользователем и механиком c (т. Е. Когда существующий разговор не существует) .
Я не могу перейти на страницу Подробности разговора , потому что у меня нет идентификатора беседы.
Может кто-нибудь сказать, пожалуйста, что лучше? Т подход заключается в том, чтобы взять здесь при попытке создать новый разговор?