首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角2管触发

角2管触发
EN

Stack Overflow用户
提问于 2016-10-28 08:19:32
回答 1查看 2.5K关注 0票数 7

我有很多模特。在模板中我使用管道

代码语言:javascript
复制
<div class="card-panel" *ngFor="let card of cards | sortByType">
    <card-view [card]="card" [autoupdate]="true"></card-view>
</div>

在每个组件中,我都有一个更新数据的计时器。但是当模型更新时,管道就不再运行了。在这种情况下,是否有办法强制运行管道或做一些角度的方式。

在卡片视图中,我有一个更新卡片变量的计时器。但是角不要捕捉到触发管道的变化

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-28 08:55:00

  • 您可以创建cards的副本,而不是Angular2更改检测,检测更改并再次执行管道。
  • 你可以把管子弄脏
代码语言:javascript
复制
@Pipe({ name: 'sortByType', pure: false})

这将导致每次运行更改检测时都执行管道。

您可以使用IterableDiffer进行自定义更改检测,并在数组没有实际更改时返回缓存的结果。

使用此选项时,您必须小心,以免造成严重的性能下降。

  • 您可以向您更新的管道传递一个附加参数(例如,在数组更改时会增加一个数字)。

这样,管道就会被调用,因为每次值或参数发生变化时,角度变化检测都会调用管道。

缺点是使用起来有点麻烦。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40300867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档