Angular 11 RxJS:如何将对象添加到可观察对象的嵌套对象列表中?

Angular 11 RxJS: How do you add an object to a nested list of objects of an observable?

假设我有一个形状为以下形状的对象的可观察对象:

export interface Invoice {
  fdInvoiceID: number;
  fdInvoiceNumber: string;
  fdCustomerID: number;
  fdTotal: number
  invoiceLineItems: InvoiceLineItem[];

如果用户添加订单项,我如何将其添加到可观察对象的 invoiceLineItems 列表中?

我有一个观察员 invoices$ 并且我在模板中使用异步

*ngIf="invoices$ | async as invoices"

将新的 lineItem 保存到数据库后,我想将其添加到 invoices$.invoiceLineItems 并通过异步显示。

我认为你不应该为此使用 observable。如果其数据更改存储在变量中并将订阅的数据传递给输入。

<div *ngFor="let invoice of invoices"
 [items]="invoice.items"> </div>

更新:

您可以组合更改数据的事件和发票$,如下所示:

public get invoices$(): Observable<Invoice[]> {
 return combineLatest([eventThatChangesItems$, invoices$]).pipe(
   map(([invoiceLineItems, invoices]) => invoices.map(invoice) => 
     invoice.invoiceLineItems = invoiceLineItems);
   );
}