3

很长一段时间以来,我一直在使用setTimeout()延迟组件进入 DOM。例如:

<div *ngIf="ready"><loading-template></loading-template></div>

setTimeout(() => this.ready = true, 800);

也就是说,如果数据还没有到达,则在显示加载消息之前等待大约 800 毫秒。根据我在 Alpha 时代的评论,我这样做是为了防止闪烁。

这不再适用于 Angular 4 RC1。我可以添加 ChangeDetectorRef 并以这种方式启动它:

setTimeout(() => {
    this.read = true;
    this.cdr.detectChanges();
}, 800);

这工作正常,除了现在我必须处理视图在调用之前被破坏的情况detectChanges();

看了一眼源代码后,我仍然不确定发生了什么变化。这不是破坏交易,但我发现在这里询问是否有其他人正在经历同样的行为很有趣。我还将遵循 Contributing docs 的建议,并使用angular对其进行标记,即使我可以看到angular4标记已经有 8 个问题。耻辱。;-)

4

0 回答 0