很长一段时间以来,我一直在使用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 个问题。耻辱。;-)