如何在Angular 4中动态渲染完HTML后调用jQuery函数?

8
我正在使用Angular 4来制作网页模板。 在构造函数内调用HTTP get方法后,会生成HTML,响应创建了HTML。 以上工作得很好。
我还在使用jQuery与Angular,并尝试在此页面上初始化一个函数。
$(function() {
    Books.init();
});

我已经尝试在各个生命周期钩子中调用上述代码。例如,ngOnInit(),ngOnChanges(),ngDoCheck,ngAfterViewInit(),ngAfterContentInit(),但是仍然会在API响应完全呈现视图之前调用该代码。

是否有一种方法可以获取确保视图完全呈现的事件,然后我可以加载我的jQuery?

请注意:我已经在setTimeout调用中使用了小延迟,并且这在其中起作用。


评论不适合进行长时间的讨论;此对话已被移至聊天室 - Bhargav Rao
1个回答

1
我面临了同样的问题。我没有得到任何解决方案,所以我尝试了一下变量。
首先,获取要渲染的元素数量的长度。
bookCount: number = 0;

然后在ngAfterContentChecked()函数中。
ngAfterContentChecked() {
if(this.bookCount > 0 && this.bookCount == document.getElementsByClassName('bk-book').length)
{
  this.getInitdata();
}

这对我暂时有用,但我仍在寻找更好的解决方案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接