Joh*_*ler 0 rxjs angular rxjs-observables
假设我有一个对象的可观察对象,其形状为:
export interface Invoice {
fdInvoiceID: number;
fdInvoiceNumber: string;
fdCustomerID: number;
fdTotal: number
invoiceLineItems: InvoiceLineItem[];
Run Code Online (Sandbox Code Playgroud)
如果用户添加了一个行项目,我如何将其添加到 observable 的 invoiceLineItems 列表中?
我有一个观察员发票 $ 并且我在模板中使用 async
*ngIf="invoices$ | async as invoices"
Run Code Online (Sandbox Code Playgroud)
将新 lineItem 保存到数据库后,我想将其添加到 invoices$.invoiceLineItems 并通过异步显示。
我相信你不应该为此使用 observable。如果其数据更改存储为变量并将订阅的数据传递给输入。
<div *ngFor="let invoice of invoices"
[items]="invoice.items"> </div>
Run Code Online (Sandbox Code Playgroud)
更新:
您可以组合更改数据的 event 和 invoices$,如下所示:
public get invoices$(): Observable<Invoice[]> {
return combineLatest([eventThatChangesItems$, invoices$]).pipe(
map(([invoiceLineItems, invoices]) => invoices.map(invoice) =>
invoice.invoiceLineItems = invoiceLineItems);
);
}
Run Code Online (Sandbox Code Playgroud)