将变量添加到变量 Observable <>
Add variables to a variable Observable <>
我有一个 Observable 变量:
messages: Observable<Message[]>;
我想给这个 Observable 变量添加变量。由于这是 Message 的集合:Message [],我想向其中添加 Message 变量:
const newMessage = new Message(objMessage);
我不知道该怎么做,我试过了,但它不起作用,因为它是针对不可观察变量的:
newThread.messages = [newMessage];
或者这个:
newThread.messages.subscribe((message: Message) => {
newThread.messages = message;
});
////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// /////////////
编辑
我在 thread.model.ts 中初始化变量消息:
messages: Observable<Message[]> = new Observable<Message[]>();
然后我在另一个服务 chat.service.ts 中初始化我的变量 newThread.messages :
newThread.messages.next(newMessage);
但它给我带来了这个错误:
Property 'next' does not exist on type 'Observable<Message[]>'
笨蛋 Link :
https://plnkr.co/edit/aNzWu2ShO55bk3fRJ5ya?p=catalogue
////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// ///////////
编辑
我刚刚意识到它并没有像我希望的那样工作。
当有多个消息时,这不起作用。通过我所做的,第二条消息删除了第一条消息。虽然我希望变量 thread.messages 包含一堆消息。
所以我尝试使用 .next 方法,但这让我出错了。
export class Thread {
id: string;
messages: BehaviorSubject<Message[]>;
}
const newThread: Thread = new Thread(objMessage.id, [newUser],objMessage.title);
const newMessage = new Message(objMessage);
newThread.messages.next([newMessage]);
Cannot read property 'next' of undefined ; Zone: <root> ; Task: Promise.then ; Value: TypeError: Cannot read property 'next' of undefined
或者这个:
private subject = new Subject<Message[]>();
this.subject.next([newMessage]);
thread.messages.subscribe((messages: Message[]) => {
messages = this.subject.asObservable();
});
你知道为什么吗?
使用 .next() 方法通过添加新的行为主体在可观察流数据中添加数据
我有一个 Observable 变量:
messages: Observable<Message[]>;
我想给这个 Observable 变量添加变量。由于这是 Message 的集合:Message [],我想向其中添加 Message 变量:
const newMessage = new Message(objMessage);
我不知道该怎么做,我试过了,但它不起作用,因为它是针对不可观察变量的:
newThread.messages = [newMessage];
或者这个:
newThread.messages.subscribe((message: Message) => {
newThread.messages = message;
});
////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// ///////////// 编辑
我在 thread.model.ts 中初始化变量消息:
messages: Observable<Message[]> = new Observable<Message[]>();
然后我在另一个服务 chat.service.ts 中初始化我的变量 newThread.messages :
newThread.messages.next(newMessage);
但它给我带来了这个错误:
Property 'next' does not exist on type 'Observable<Message[]>'
笨蛋 Link :
https://plnkr.co/edit/aNzWu2ShO55bk3fRJ5ya?p=catalogue
////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// /////////// 编辑
我刚刚意识到它并没有像我希望的那样工作。 当有多个消息时,这不起作用。通过我所做的,第二条消息删除了第一条消息。虽然我希望变量 thread.messages 包含一堆消息。
所以我尝试使用 .next 方法,但这让我出错了。
export class Thread {
id: string;
messages: BehaviorSubject<Message[]>;
}
const newThread: Thread = new Thread(objMessage.id, [newUser],objMessage.title);
const newMessage = new Message(objMessage);
newThread.messages.next([newMessage]);
Cannot read property 'next' of undefined ; Zone: <root> ; Task: Promise.then ; Value: TypeError: Cannot read property 'next' of undefined
或者这个:
private subject = new Subject<Message[]>();
this.subject.next([newMessage]);
thread.messages.subscribe((messages: Message[]) => {
messages = this.subject.asObservable();
});
你知道为什么吗?
使用 .next() 方法通过添加新的行为主体在可观察流数据中添加数据