当我安装星云主题时,我收到关于我使用的角度材料模态的错误。我仅将 nebular 用于身份验证页面。错误是ERROR TypeError: Cannot read properties of undefined (reading 'appendChild') 我能做些什么来解决这个问题?
问问题
157 次
1 回答
0
Nebular 会自动为Overlay container注入一个新的实现,所以当你使用任何使用 angular cdk overlay 的弹出窗口时,它会失败,除非 Nebular Overlay Container 可以找到它的元素,我猜这个元素是 nebular 布局组件,所以基本上你可以'如果不使用星云布局之外的任何对话框,您可以采用的一种解决方案是实现自己的 Overlay Container 并在具有 mat 对话框使用的模块中提供它。像这样的东西
@Injectable()
export class MyOverlayContainer extends OverlayContainer implements OnDestroy {
constructor(@Inject(DOCUMENT) document: Document, _platform: Platform) {
super(document, _platform);
}
protected _createContainer(): void {
super._createContainer();
if (!this._containerElement) {
return;
}
const parent = document.body;
parent.appendChild(this._containerElement);
}
ngOnDestroy() {
super.ngOnDestroy();
this._containerElement = null;
}
}
在你的模块中
import { OverlayContainer } from '@angular/cdk/overlay';
@NgModule({
providers: [{ provide: OverlayContainer, useClass: MyOverlayContainer }]
})
于 2021-09-28T16:19:29.920 回答