我有一些组件(SomeComponent)。通过单击一些按钮,我创建弹出窗口。我通过ComponentPortal创建它。另外,我创建了叠加层并将门户附加到该叠加层上。
代码如下:
const calendarPortal = new ComponentPortal(MyPopupComponent);
const positionStrategy = this.getPositionStrategy(this.getAnchorElement());
const overlayConfig = new OverlayConfig({
positionStrategy,
panelClass: 'popup'
});
this.popupRef = this.overlay.create(overlayConfig);
const calendarPopupComponent = this.popupRef.attach(calendarPortal);
是否有可能获得SomeComponent实例?
我通过DI尝试过,但没有成功。
constructor(someComponentRef: SomeComponent) {
...
}
我在应用程序启动时有此提示
Can't resolve all parameters for MyPopupComponent: (?).
Error: Can't resolve all parameters for MyPopupComponent: (?).
at syntaxError (http://localhost:6006/static/preview.bundle.js:45245:17)
顺便说一句,我在应用程序启动时得到了它。当我尝试创建弹出窗口时不行。太奇怪了。
我在ComponentPortal中找到了喷射器和viewContainerRef输入。我都尝试过,但是没有用。
所以我需要一些方法来获取MyPopupComponent内SomeComponent的实例。我该如何处理?