html div无法,无法在div中获得动态创建的HTML

这篇博客讨论了在Angular应用中如何在一个组件中打开另一个组件,并在其中使用Canvas绘制图像。作者遇到的问题是尝试从源组件传递图像src到目标组件并在Canvas上绘制时,console.log显示src为undefined。解决方案包括将src属性绑定到组件变量,或者如果需要从Canvas获取图像数据,可以使用canvas.toDataURL()方法提取Base64编码的图像数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我有一个组件文件,在其中调用另一个组件文件。喜欢

this.dialog.open(ProqrComponent, {

width: '560px',

height: 'auto',

panelClass : 'docqr'

});

ProqrComponent是一个不同的组件文件。在ProqrComponent中,这是如何处理这个:

ngAfterViewInit() {

var scope = this;

this.cc=document.getElementById("mcanvas");

var ctx = this.cc.getContext("2d");

this.img = document.getElementById("scream");

this.gctx = ctx;

ctx.clearRect(0, 0, 520,140);

ctx.drawImage(this.img,0,20,520, 140);

this.qrcode = $("#qrcode div img").attr("src");

console.log(this.qrcode);

}

好吧,我正在使用帆布。因此,这个drawImage方法将生成HTML以下并动态附加到对话框HTML。

....

注意:我无法更改此qrcode HTML。

但是这个console.log(this.qrcode);总是安慰undefined。任何帮助如何在角度对话框中获取图像src。 Thanx提前。

答案

您可以将src属性绑定到变量,如:

在你的组件中:

imageSource:string = "image/..."

然后,您可以将此变量分配给qr代码:

this.qrcode = this.imageSource;

另一答案

如果您需要画布中的图像内容在对话框中绘制,您应该将画布中的图像二进制数据作为base64并使用它来绘制。

这是提取base64数据的片段:

let canvas = document.getElementById('canvas');

let ctx = canvas.getContext('2d');

let image = document.getElementById('source');

ctx.fillRect(10,10,10,10);

ctx.fillRect(30,10,10,10);

const data = canvas.toDataURL();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值