3

CDK オーバーレイを使用して、マテリアル スピナーを特定のコンポーネントの上にロード インジケーターとして追加しようとしています。ただし、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();
    }
}
4

1 に答える 1