使用异步管道的*ngFor循环?

6

阅读这篇文章,其中有一个像这样的ngFor循环:

*ngFor="let contact of contacts | async"

在这种情况下,async管道是如何工作的?

https://angular.io/api/common/AsyncPipe。换句话说,它告诉组件在通过RxJS订阅发出新值时更新(而不是一次性更新整个集合)。当组件被销毁时,它还会自动取消订阅可观察对象。 - ryanlutgen
1个回答

5

异步管道从可观察对象中获取最新值。在这种情况下(以及其他情况下),当可观察对象传递下来一个新值时,它将刷新涉及到的数据。因此,如果屏幕渲染并且可观察对象更新了,ngFor 将重新渲染。


那么这是否意味着contacts是一个可观察对象?此外,如果我们使用async,那么联系人列表会在相应的可观察对象更新时自动重新渲染? - Ole
刚刚再次阅读了@ryanlutgen提供的文档,看起来第一个评论是正确的。不错。这似乎是一件非常出色的工程奇迹。 - Ole
是的,异步管道仅用于可观察对象,屏幕将自动更新。 - mgm87
非常感谢 - 我还找到了一篇带有一些好例子的文章,所以我会将它发布出来,以防其他人遇到这个主题:https://juristr.com/blog/2017/06/new-enhanced-ngIf-and-ngFor/#enumerate-ngfor-loops-using-as-and-async-pipes - Ole

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接