【发布时间】:2020-11-09 17:25:05
【问题描述】:
我一直在尝试重构一些 Angular 代码以利用异步管道并摆脱组件中的一堆订阅,但是当我不得不大量异步管道时,它最终在模板内部看起来非常混乱对Observable<Item> 变量的引用,而不是将其作为Item 分配一次。
有没有办法将可观察的结果流分配给模板中的变量,然后正常使用它?例如,从这里开始:
<div *ngIf="item | async">
<p>{{ (item | async).property1 }}</p>
<p>{{ (item | async).property2 }}</p>
<p>{{ (item | async).property3 }}</p>
</div>
到这样的事情:
<div *ngVariableHere="(item | async) as item">
<p>{{ item.property1 }}</p>
<p>{{ item.property2 }}</p>
<p>{{ item.property3 }}</p>
</div>
或者在这种情况下,只是订阅组件中的可观察对象并将结果值分配给item,是否更像是“Angular 方式”?
非常感谢!
【问题讨论】:
-
是
item一个具有许多属性的对象,还是一组对象? -
在这个例子中是前者。我想我可以将
item映射到它自己的单项数组并通过*ngFor="let item of (items | async)"完成此操作,但这对我来说似乎超级讨厌。
标签: angular asynchronous rxjs observable