【发布时间】:2020-07-12 11:35:12
【问题描述】:
我有以下问题,我认为这是一个常见的情况,但我无法解决它。
我有一个小的错误警报组件,里面有一个显示错误的方法。
我在路由组件中使用它的方式是我使用@viewChild 查询来访问它的addNewMessage 方法并且它可以工作。
这次我有一个来自 ng-bootstrap 的 NgbModal,我用它打开了一个组件。在这个组件中,我需要使用我的错误组件来显示错误,但是我无法使错误组件在模态中正确加载,我也无法使用 viewChild 访问它的方法,我不确定问题出在 viewChild 还是组件上由于模块配置中缺少某些内容而无法加载。
这就是我在路由组件中调用我的模态(NewRecordingFormComponent)的方式:
const modalRef = this.modalService.open(NewRecordingFormComponent);
这就是我在模态中使用错误组件的方式:
<voice-error-alert-component #alertComponent></voice-error-alert-component>
这就是组件在编译后在 html 中的显示方式:
<voice-error-alert-component _ngcontent-dhb-c7=""></voice-error-alert-component>
这是我在NewRecordingFormComponent 中使用的viewChild 查询:
@ViewChild('alertComponent', { static: false }) alertComponent: ErrorAlertComponent;
此查询适用于路由组件。
我不知道如何使它工作,当我查看 html 时,我应该在其中看到一个 ng-for,但我在这里什么也没看到,这让我觉得组件没有被编译,就像 angular不知道它是一个组件,只是将其保留为纯 html。
我觉得在我的模态组件中找不到这个组件,可能是因为我使用引导模态打开它的方式?是因为我在动态组件上使用它并且因为它没有绑定到任何路由它没有被加载?我必须手动加载 y 还是手动声明它才能在模态中使用?
我还能在这里放什么以便我可以得到帮助?我对这个版本的角度很新,我正在搜索,但我找不到与我看到的相似的东西,非常感谢任何帮助!!!
【问题讨论】:
标签: angular angular-components ng-bootstrap viewchild angular-dynamic-components