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

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

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

如果用户添加了一个行项目,我如何将其添加到 observable 的 invoiceLineItems 列表中?

我有一个观察员发票 $ 并且我在模板中使用 async

*ngIf="invoices$ | async as invoices"

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

回答

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

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

更新:

您可以组合更改数据的 event 和 invoices$,如下所示:

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


以上是Angular11RxJS:如何将对象添加到可观察对象的嵌套列表中?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>