我在html中动态生成了16个画布,我用@ViewChildren读出了它们。第一次绘画画布时,一切工作正常,但是当可观察的更新时,画布将清除并且不会重新绘制图像。老实说,我找不到原因。
在我的代码中,我明确未使用可观察对象绘制的任何数据,以确保这不是错误。如果使用调试器,则变量中确实存在ctx上下文。
animate() {
let updateCount = 0;
this.newTankTabs$.subscribe(tab => {
console.log("updating from subscribe change");
let count = 0;
let tankTabs = tab as TankTabModel[];
for (let i = 0; i < tankTabs.length; i++) {
for (let j = 0; j < tankTabs[i].Tanks.length; j++) {
let ctx = this.viewChildren.toArray()[count].nativeElement.getContext('2d');
ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);
ctx.beginPath();
ctx.rect(73.5, 13, 53, 404);
ctx.lineWidth = 3;
ctx.shadowBlur = 1;
ctx.shadowOffsetX = 0;
ctx.shadowOffsetY = 0;
ctx.shadowColor = 'black';
ctx.strokeStyle = 'grey';
ctx.stroke();
count++
}
}
updateCount++;
});
}