В моем приложении Angular есть следующие модели Conversation
& Message
:
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: Date
) { }
}
Вот где я заполняю данные:
private _conversations = new BehaviorSubject<Conversation[]>([
new Conversation(
'conversation1',
'user3',
'user1',
[
new Message('message1', 'Test message', 'user3', new Date(2018, 0O5, 0O5, 17, 23, 42, 11)),
new Message('message2', 'Another message', 'user1', new Date(2018, 0O6, 0O5, 17, 23, 42, 11))
]),
new Conversation(
'conversation2',
'user4',
'user2',
[
new Message('message3', 'my message', 'user4', new Date(2018, 0O7, 0O7, 17, 23, 42, 11)),
new Message('message4', 'more messages', 'user2', new Date(2018, 0O7, 0O7, 17, 23, 42, 11)),
])
]);
Я пытаюсь удалить указанный Message
в Conversation
.
Например, я хочу удалить сообщение с id = message3
, которое находится внутри conversation2
.
I В настоящее время я могу удалить все Conversation
:
deleteConversation(convoId: string) {
return this.conversations.pipe(
take(1),
delay(1000),
tap(conversations => {
this._conversations.next(conversations.filter(convo => convo.id !== convoId));
}));
}
Но я пытаюсь применить этот код к deleteMessage()
:
deleteMessage(conversationId: string, messageId: string) {
return this.conversations.pipe(
take(1),
delay(1000),
tap(conversations => {
})
)
}