1
我正在使用Aurelia。在Aurelia動態加載內容後執行功能
我有一個post
路線,顯示一個帖子給出通過id
。 服務器編譯以前寫的帖子HTML的降價,和我使用的加載在我的模板此內容:
<div innerHTML.bind="post.content"></div>
// in the activate() function
client
.fetch(`api/post/${params.id}`)
.then(res => res.json())
.then(data => {
this.post = data;
// this is the workaround I am currently using
setTimeout(this.displayLineNumbers, 200);
});
我找不到任何方法來執行某一功能內容已附加到視圖。 如果我只用:
this.post = data;
this.displayLineNumbers();
它會失敗,因爲內容尚未連接還沒有,因此我的功能是爲了更改的元素尚未公佈。我正在使用的當前解決方法是等待200毫秒,然後執行該功能。
有什麼方法(事件或功能)知道何時動態加載的內容被連接?或者,也許另一種模板內容的方式比innerHTML.bind
?
這是一個問題,許多人問及...和一個很好的解決方法。看起來Aurelia應該考慮添加一個自動添加'.queueMicroTask()'並調用viewmodel方法(如'bindingFinished()')的生命週期鉤子(如果可能)。 – LStarky
我們建議爲此使用'queueMicroTask',並在我們的官方培訓課程中教授這一點。 –