NgbModal中的角组件不能使用@viewchild访问内部方法

问题描述 投票:0回答:1

我有以下问题,我认为这是一种常见的情况,但我无法解决。我有一个小的错误警报组件,该组件内部有一个显示错误的方法。我在路由组件中使用它的方式是我使用@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。

我觉得在我的模态组件中找不到该组件,可能是因为我使用了引导模态来打开它?是因为im在动态组件上使用它,并且因为它不与任何路由绑定,所以未加载?我是否必须手动加载y或手动声明y以便可以在模态内部使用?

我还能在这里放些什么,以便在此方面获得帮助?我对这个版本的角度搜索非常新,我正在搜索,但是我找不到类似于我所看到的东西,非常感谢任何帮助!!

我有以下问题,我认为这是一种常见的情况,但我无法解决。我有一个小的错误警报组件,该组件内部有一个显示错误的方法。我在...

angular angular-components ng-bootstrap viewchild angular-dynamic-components
1个回答
0
投票

尝试在ngAfterViewInit(console.log(alertComponent);)中记录viewchild变量

© www.soinside.com 2019 - 2024. All rights reserved.