角度6-将ngIf设置为true时,等待元素加载到* ngIf中

时间:2018-09-26 05:11:12

标签: javascript html angular

我正在使用角度6。

我有一个类似下面的html。

<div class="catalog-menus-subnav-wrapper"
                     *ngIf="showMenus">
 <div class="hidden-elem">
 </div>
</div>

在这里,默认情况下showMenus将为false,并在同一页面中单击按钮时将其设置为true。

现在,我正在尝试将showMenus设置为true后立即将此div调整为角度,但有时由于dom尚未完全加载而没有得到。

public onClick(event) {

      this.showMenus= true;

      const item= $(event.currentTarget);
      const wrapper = item.next('.catalog-menus-subnav-wrapper');
      const height= item.closest('.hidden-elem').height();

  }

这里,item.next('。catalog-menus-subnav-wrapper')有时不返回值,因为在执行此操作时未完成DOM加载。将showMenus设置为true后,有什么方法可以等待DOM加载吗?或者,还有其他解决方法吗?

谢谢

1 个答案:

答案 0 :(得分:2)

尝试使用隐藏,如果使用 ngIf ,则它将从DOM中删除元素

在下面尝试一下

.html

<div class="catalog-menus-subnav-wrapper" [hidden]="!showMenus">
   <div class="hidden-elem">
   </div>
</div>