我有一个基于<canvas [attr.width]='gameWidth' [attr.height]='gameHeight'></canvas>
在给定的事件中,我想更新绑定到width
和height
的属性,然后将一些内容重新绘制到新重新调整大小的画布中。
当我尝试更新绑定属性然后立即触发重新绘制时出现问题。画布重新调整大小但绘图不会发生。
I made a plunk that shows the problem.点击画布会改变其尺寸,但随后对doRender()
的调用无效。
我假设元素更新时有一些延迟,在此期间无法进行绘图。在这个例子中,我可以通过使用Observable.timer()
在延迟时调用doRender()
来解决问题,但这感觉很脏,我想知道这里的潜在问题是什么,以及是否有更好的方法在开始绘图之前确保画布上下文已准备就绪。
全部谢谢