【发布时间】:2020-12-27 21:14:55
【问题描述】:
我正在尝试在 mat-dialog 中渲染过滤器,我发现它可以正确渲染,但在功能上不可用,我不确定这是否正确。
这里是代码
这是我创建和打开对话框的方式:
public lol(colDef: ColDef): void {
console.log(colDef);
this.gridApi?.getFilterInstance(colDef.field, (foo) => {
console.log(foo.getModel());
foo.setModel(foo.getModel());
this.dialog.open(FilterWrapperDialogComponent, {
data: {
filterHtml: foo.getGui()
},
panelClass: 'ag-custom-component-popup'
}).afterClosed().subscribe((applyOrNot) => {
if (applyOrNot) {
this.gridApi.onFilterChanged();
console.log(foo.getModel());
}
});
})
}
对话内容:
<mat-dialog-content>
<div class="ag-theme-material ag-custom-component-popup" [innerHTML]="data.filterHtml?.innerHTML | safeUrl: 'html' "></div>
</mat-dialog-content>
<mat-dialog-actions>
<button mat-raised-button i18n [mat-dialog-close]="true" color="primary">Apply</button>
</mat-dialog-actions>
它可以正确呈现,但会失去功能。
我的目标是在不实际添加到 ag-grid 表的情况下设置过滤器,只需通过对话框和 ag-grid API。
【问题讨论】:
标签: javascript angular ag-grid ag-grid-angular