gpt4 book ai didi

angular - 如何仅在我的 View (及其 ngFors 等)发生变化后才执行代码?

转载 作者:太空狗 更新时间:2023-10-29 19:31:18 25 4
gpt4 key购买 nike

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

有没有办法只在 View 完成渲染(或者,更好的是, View 内容已更改)时运行代码?我见过在组件的 @Inputs 发生变化时执行代码的方法,但在其内部方法发生变化时却看不到。

最佳答案

目前没有内置支持。

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

使用

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

应该延迟 afterValueChanged() 的执行,以便 Angular 完成对 DOM 的更新。这样 afterValueChanged() 将被排入事件队列,并且 Angular 应该在实际执行此计划的事件队列任务时完成。

关于angular - 如何仅在我的 View (及其 ngFors 等)发生变化后才执行代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36011948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com