一旦在Angular 4中动态完全呈现HTML,我怎样才能在jQuery中调用函数?

Anm*_*l G 8 javascript jquery html5 angular

我使用Angular 4作为我的网页模板.在构造函数内部调用HTTP get方法后生成HTML,其响应创建HTML.

以上工作正常.

我也在使用带有Angular的jQuery并试图在这个页面上初始化一个函数.

$(function() {
    Books.init();
});
Run Code Online (Sandbox Code Playgroud)

我试过在各种生命周期钩子里面调用上面的代码.例如,ngOnInit(),ngOnChanges(),ngDoCheck,ngAfterViewInit(),ngAfterContentInit()但仍然在API响应完全呈现视图之前调用代码.

有没有办法得到一个事件,以确保视图完全呈现,然后我可以加载我的jQuery?

请注意:我已经在setTimeOut调用中调用了这个函数,时间延迟很小,这就可以了.

Jay*_*aya 1

我遇到了同样的问题。我没有得到任何解决方案,所以我使用变量。

首先,计算出要渲染的元素数量。

bookCount: number = 0;
Run Code Online (Sandbox Code Playgroud)

然后在 ngAfterContentChecked() 中

ngAfterContentChecked() {
if(this.bookCount > 0 && this.bookCount == document.getElementsByClassName('bk-book').length)
{
  this.getInitdata();
}
Run Code Online (Sandbox Code Playgroud)

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