如何仅在我的视图(及其 ngFors 等)更改后才执行代码?

2023-12-03

我正在尝试对充满图像的页面实施 MagnificPopup 解决方案。因为它们是通过 *ngFor 渲染的,所以初始化弹出功能的代码在图像渲染之前运行。

有没有办法仅在视图完成渲染(或者更好的是,视图内容已更改)时运行代码?我见过在组件的 @Inputs 更改时执行代码的方法,但在其内部方法更改时却没有。


目前没有内置支持。

您可以使您的内部字段*ngFor绑定到 setter 并在更改时调用方法。

Using

set someValue(newValue) {
  this._someValue = newValue;
  setTimeout(() => afterValueChanged(),10);
}

应该延迟执行afterValueChanged()足以让 Angular 完成 DOM 更新。这边走afterValueChanged()将被排队到事件队列中,Angular 应该在这个计划的事件队列任务实际执行时完成。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何仅在我的视图(及其 ngFors 等)更改后才执行代码? 的相关文章

随机推荐