ngAfterViewChecked继续调用循环

时间:2016-11-20 14:51:56

标签: angular

我正在使用ngAfterViewChecked来调用一个使用jquery初始化一些css角色的函数

我的代码就像这样

ngAfterViewChecked(){
   console.log("ngAfterViewChecked");
   this.callJqueryMethod();

   } 


 callJqueryMethod(){
    jQuery(".leftText").each(function () {
        var $this = jQuery(this);

        $this.height($this.parent("div").find(".boxWarp").height()+42);
    });

    jQuery(window).resize(function () {



        jQuery(".leftText ").each(function () {
            var $this = jQuery(this);
            $this.height($this.parent("div").find(".boxWarp").height() + 42);
        });
    });


 }

由于某些原因,ngAfterViewChecked继续在循环中反复调用。

我必须使用这个生命周期钩子,在其他生命周期中,厄运还没有准备好。

有没有人遇到过这种问题?我在控制台中看不到错误

1 个答案:

答案 0 :(得分:2)

看起来jquery正在触发DOM的更新,实际上调用了ngAfterViewChecked()并且这个再次调用jquery,所以你在jquery和ngAfterViewChecked()之间有一个循环。

尽量避免使用此钩子进行jquery。