我们有 1) 材质对话框组件打开 2) 另一个材质对话框组件,当用户按下“打开高级搜索”按钮时。
第一个 Dialog 组件处于固定位置。第二个对话框组件是可移动的,但还不能落后于第一个原始组件。
如何做到这一点,用户可以互换两个窗口的后部或前部位置,就像典型的 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 窗口被固定,则可以接受作为 answer 。
资源: