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',并在我们的官方培训课程中教授这一点。 –