【发布时间】:2020-04-15 19:46:54
【问题描述】:
我有一个简单的控制面板,它有一个 Angular Mat-Slide-Toggle 控件,如下所示:
<mat-slide-toggle (change)="onQAStateDisplayChanged($event)">Display QA Status</mat-slide-toggle>
change 事件上调用的函数简单地触发一个事件,如下所示:
@Output() qaStateDisplayChanged: EventEmitter<boolean> = new EventEmitter();
...
onQAStateDisplayChanged(event: MatSlideToggleChange) {
this.qaStateDisplayChanged.emit(event.checked);
}
我的容器组件,监听事件,调用一个需要几秒钟才能完成的函数。我曾希望在切换 SlideToggle 时会发出 qaStateDisplayChanged 事件,并且 SlideToggle 会立即滑过。实际发生的情况是您单击 SlideToggle,直到几秒钟后一切都完成后,视觉上没有任何变化,这不是一个很好的用户体验!
在收到事件后,使用 Three.js 进行一系列 3D 模型操作。浏览器似乎无法刷新 SlideToggle,因为它正在密集地操作 3D 模型。模型更新后,浏览器可以更新 UI,SlideToggle 会滑过。
谁能提出一种更能引起共鸣的替代方法?
【问题讨论】:
-
您的应用程序中一定有其他问题导致延迟。