首页 > 解决方案 > 如何确定从哪里调用组件?有角度的

问题描述

我有一个想要用作模态的组件

     showMyPopup(): void {
    this.matDialog.open(MyComponent, {
      maxWidth: '92vw',
      maxHeight: '90vh',
      width: '100%',
      height: '100%',
      position: {
        right: '10px',
        bottom: '6px',
      },
      data: {
        isModalComponent: true,
      },
    });
  }
}

只是一页

     <app-my-component>

  </app-my-component>

如何确定这是一个模态窗口?改变它在组件内的样式?我试过这样

 constructor(@Inject(MAT_DIALOG_DATA) data) {
console.log(data);

但这不起作用,因为如果窗口不是模态的,则会出现错误

标签: angular

解决方案


你非常接近 - 使用@Optional()

 constructor(@Optional() @Inject(MAT_DIALOG_DATA) private data){};

get isModal(){
   return !!this.data;
   
}

推荐阅读