【发布时间】:2020-10-29 15:09:48
【问题描述】:
我们有 1) 材质对话框组件打开 2) 另一个材质对话框组件,当用户按下“打开高级搜索”按钮时。
第一个 Dialog 组件处于固定位置。 第二个 Dialog 组件是 Movable,但还不能落后于第一个原始组件。
如何做到这一点,用户可以互换两个窗口的前后位置,就像典型的 Windows 10 桌面应用程序一样,取决于最后单击/拖放/拖放的内容?
第二部分:
public openAdvancedPropertySearchDialog(): void {
const advancedApnSearchDialogRef = this.advancedApnSearchDialog.open(DocumentPropertyGridComponent, {
width: '800px',
height: '450px',
disableClose: true,
autoFocus: false,
data: "test"
hasBackdrop: false
});
advancedApnSearchDialogRef.afterClosed().subscribe(result => {});
}
第二个组件的 HTML 代码: 是可移动的: 理想情况下,第一个组件对话框应位于固定位置
<div mat-dialog-title cdkDrag cdkDragRootElement=".cdk-overlay-pane" cdkDragHandle>
<div class="row">
<button class="dialog-button close-button" mat-button (click)="onCancel()">X</button>
</div>
<app-document-property-grid></app-document-property-grid>
</div>
*如果只有可能两个组件都可以通过 cdkDrag 移动,而不是第一个 Modal 窗口被固定,则可以接受作为答案。
资源:
【问题讨论】:
标签: angular typescript angular-material angular8 material-dialog