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)">
添加回答
舉報