angular - 当组件在 DOM 上不存在时执行 Angular ngOnInit
问题描述
在这里快速提问,我有一个模态对话框组件,这是 HTML:
<div class="modal__backdrop">
<div class="modal__container">
<div class="modal__content" (modalclose)="closeDialog()">
<ng-container *ngIf="visible === 'open'">
<ng-content select="bo-wizard"></ng-content>
<ng-content></ng-content>
</ng-container>
</div>
</div>
</div>
在我使用它的视图中,我有这个 HTMl:
<bo-modal-dialog #modalDialog id="wizardModal">
<bo-wizard></bo-wizard>
</bo-modal-dialog>
如果您检查此图像,则由于这种情况,模态对话框中的组件在 DOM 上不存在*ngIf="visible === 'open'"
:
但是为什么ngOnInit
在模态内部的组件bo-wizard
中正在执行?我怎样才能解决这个问题。
解决方案
在 Modal 的父 div 上使用条件
<div class="modal__backdrop" *ngIf="visible === 'open'">
<div class="modal__container">
<div class="modal__content" (modalclose)="closeDialog()">
<ng-container>
<ng-content select="bo-wizard"></ng-content>
<ng-content></ng-content>
</ng-container>
</div>
</div>
</div>
推荐阅读
- snmp - Opendaylight WebGUI 不可视化 SNMP 设备的拓扑/节点信息
- javascript - 如何在单击图标播放/暂停时打开音频
- android-studio - 在 Android Studio 上找不到 SDK 设置
- react-native - 当我导航到本机反应的新页面时,如何强制卸载组件?
- html - 修复 Bootstrap tbody 滚动与父级
- powershell - 有没有办法指定 PowerShell 脚本的编码
- python - 在 pandas Dataframe 中,如何插入行,然后将单元格值复制/粘贴到插入的行中?
- r - 如何按行数显示某些列表元素
- android - 哪一个是最流行的框架\技术栈来构建移动(安卓\苹果)应用程序
- java - 我对 Java NIO 感到困惑