在 Angular 材质垫对话框中隐藏/显示列

Posted

技术标签:

【中文标题】在 Angular 材质垫对话框中隐藏/显示列【英文标题】:Hide/Show column in Angular material mat-dialog 【发布时间】:2020-02-22 20:44:48 【问题描述】:

我在代码中显示 mat-dialog

我给了高度和宽度静态(不确定我是否可以在显示 Mat-dialog 后更改)

 const dialogConfig = new MatDialogConfig();
dialogConfig.disableClose = true;
dialogConfig.autoFocus = false;
dialogConfig.height = '700px';
dialogConfig.width = '700px';    
this.dialog.open(etailsComponent, dialogConfig);

所以,在 Mat-dialog 中,我想在两列中显示数据。两列中的一列宽度为 150 像素,用户希望在单击按钮时显示或隐藏此列(目前正在运行)。

当我隐藏该列时,另一列将展开以覆盖 150px 的空间。

1) 我不希望该列在隐藏时展开

2)列隐藏后,我不想显示空白。(我认为这很棘手)

我正在使用 Flex 容器来扩展列。

最好的设计是什么?

【问题讨论】:

列因它们具有的内部 CSS 样式而延伸。它与对话框本身无关。要更新对话框大小,您可以使用updateSize - this.dialogRef.updateSize('700px', '350px') 【参考方案1】:

您需要使用 css 属性可见性来隐藏状态。与 *ngIf 或 Css display: none 不同,Both 属性从 Dom 中删除元素,并且这些元素的空间在 html 上将是空闲的。所以使用可见性。这只是隐藏元素,但 Dom 是不可更改的。

visibility: visible to visibility: hidden; 

【讨论】:

这也是一样的,我没有看到任何变化

以上是关于在 Angular 材质垫对话框中隐藏/显示列的主要内容,如果未能解决你的问题,请参考以下文章

Angular Storybook 材质对话框

如何在网格中显示列并将其隐藏在视图对话框中

如何使角度材质对话框可拖动[重复]

Angular2 材质对话框有问题 - 您是不是将其添加到 @NgModule.entryComponents?

Angular:在关闭浏览器窗口之前显示材质弹出窗口

Angular 材质:Shake MatDialog