javascript - Angular 6 - 在将 ngIf 设置为 true 时等待元素加载到 *ngIf 中

标签 javascript html angular

我正在使用 Angular 6。

我有一个如下所示的 html。

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

此处,showMenus 默认为 false,并在单击同一页面中的按钮时将其设置为 true。

现在,我试图在将 showMenus 设置为 true 后立即以 Angular 获取此 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 加载吗?或者,还有其他解决方法吗?

谢谢

最佳答案

尝试使用hidden,如果你使用ngIf那么它会从DOM中移除元素

试试下面这个,

.html

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

关于javascript - Angular 6 - 在将 ngIf 设置为 true 时等待元素加载到 *ngIf 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52510330/

相关文章:

javascript - JSON parseError - 将 json 获取为字符串

javascript - if语句计数器变量混淆javascript

javascript - 防止文本表格突出显示

*NgIf 完成后 Angular 4 运行代码

javascript - Angular Material : layout-fill not filling parent <div>

html - Angular 7 不呈现 Bootstrap 控制

javascript - 如果使用 javascript 选中其他复选框,如何选中一个复选框?

javascript - 在 Angular 2 中加载 jQuery 函数

javascript - 如何使用@angular/http中的http发送post请求

javascript - JavaScript 中的双空格