gpt4 book ai didi

javascript - 项目在 ~10 秒后消失 [Angular2, *ngFor]

转载 作者:太空宇宙 更新时间:2023-11-04 15:49:58 25 4
gpt4 key购买 nike

我有一个简单的 Angular2 模板,如下所示:

<span *ngFor="let message of messages">
{{ message.content }}
</span>

以及其背后对应的TS逻辑:

let a = new Map();
for(let i = 0; i < 100; i++) {
a.set(i, { content: i.toString() });
}

this.messages = a.values();

我可以在 View 中看到包含 100 个项目的列表,但几秒钟后(5 到 15 秒),它们就会消失,没有任何错误/警告。

为什么会发生这种情况?

最佳答案

实际上,您没有收到任何可见的更改,因为在 for 循环完成对 map 变量的迭代之前,您正在分配空(此时)元素映射到messages变量。

可能的解决方案是添加一个 setTimeout 函数来等待循环完成。

setTimeout(() => {
this.messages = a.values();
}, 200);

<强> Plunker link

注意:各位程序员,我们这里有一个小问题,a.values()函数怎么可能不等待循环结束呢?它的行为类似于异步调用...我能够使用 setTimeout 修复它,但从长远来看它并不有效。

有人知道为什么会这样吗?

关于javascript - 项目在 ~10 秒后消失 [Angular2, *ngFor],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43217927/

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