2 回答
TA贡献1852条经验 获得超1个赞
您的代码问题:
angular 没有机会在两条指令之间运行其“检查修改后的数据和更新 DOM”处理:
this.peers.push(peer);
var peerImage = < HTMLImageElement > document.getElementById("x0");
所以当你请求 element 时x0,它仍然不在 DOM 中。
您将不得不等待下一个ngAfterViewInit()事件让您的代码使用包含您的x0img 节点的 DOM 执行。有关详细信息,请参阅角度生命周期挂钩。
你可能应该做什么:
如果您需要更新节点的字段<img>,您可能应该让数据层提供必要的数据,而不是在数据层中“注入”html 节点并从 javascript 代码更新其字段。
例如:如果您需要更新src图像的,请src在数据中添加一个字段:
示例 1:在“peer”对象中添加“src”字段
// in your javascript code :
var peer = {
id: 1,
src: '/starting/img.png',
...
}
// in your html template :
<img id="{{'x' + i}}" [src]="peer.src">
示例 2:让函数返回srcfrom的值peer:
// in your javascript code :
getPeerImage(peer) {
if (this.state[peer.id] === "ok") {
return "ok.png";
} else {
return "questionmark.png";
}
}
// in your template :
<img id="{{'x' + i}}" [src]="getPeerImage(peer)">
添加回答
举报