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);
);
}
假设我有一个形状为以下形状的对象的可观察对象:
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);
);
}