Как отправить сообщение как часть объекта разговора перед созданием разговора в приложении Ioni c 5 / Angular? - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь создать приложение 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 (т. Е. Когда существующий разговор не существует) .

Я не могу перейти на страницу Подробности разговора , потому что у меня нет идентификатора беседы.

Может кто-нибудь сказать, пожалуйста, что лучше? Т подход заключается в том, чтобы взять здесь при попытке создать новый разговор?

...