我正在尝试使用 CDK Overlay 在特定组件的顶部添加一个材质微调器作为加载指示器。但是,当我将 hasBackdrop 设置为 true 时,整个应用程序将变灰并禁用。我正在尝试从组件传入 viewContainerRef 并使用 connectedTo 定位。我可以移动微调器的位置,但不能改变被背景禁用的区域。
@Injectable()
export class WaitIndicatorService {
overlayRef: OverlayRef;
constructor(public overlay: Overlay) { }
showSpinner(viewContainerRef: ViewContainerRef): void {
const config = new OverlayConfig();
config.positionStrategy = this.overlay.position()
/* .global()
.centerHorizontally()
.centerVertically(); */
.connectedTo(viewContainerRef.element,
{ originX: 'start', originY: 'bottom'},
{ overlayX: 'start', overlayY: 'bottom' });
config.hasBackdrop = true;
this.overlayRef = this.overlay.create(config);
this.overlayRef.attach(new ComponentPortal(WaitSpinnerPanelComponent, viewContainerRef));
}
hideSpinner(): void {
this.overlayRef.dispose();
}
}