【问题标题】:Angular: ag-grid is resetting after I apply grid optionsAngular:我应用网格选项后,ag-grid 正在重置
【发布时间】:2020-03-21 07:37:16
【问题描述】:

感谢这里的某个人,我正在我的 agGrid 上设置一个排序模型,并告诉它自动调整所有列的大小。当我单步调试调试器时,我可以看到更改生效。但是随后,something else 执行,并且网格被重置为我猜它的默认状态。那会是什么?

这是 HTML 定义:

<div>
    <br>
    <div class="domain-form-input"></div>
    <h1>Refresh Job Log</h1>
    <br>
    <data-table *ngIf="portfolioData"
                [setData]="portfolioData"
                [columnDefinition]="columnsDefinition"
                [selectable]="selectable"
                [highlight]="highlight"
                (onRowDoubleClick)="onRowDoubleClick($event)"
                [showSearchBar]="false"
                (onCellClick) = "onCellClick($event)"
                (onDataGridReady)="onGridReady($event)"
    >
    </data-table>
</div>

还有一个 .ts 的 sn-p:

public onGridReady(params): void {
    this.gridApi = params.api;
    this.columnApi = params.columnApi;
    const sortModel = [
        {colId: 'refreshJobStart', sort: 'desc'}
    ];
    this.gridApi.setSortModel(sortModel);
    this.columnApi.autoSizeAllColumns();
}

public ngOnInit(): void {
    this.gridOptions.defaultColDef = this.selectable ? this.getDefaultColumnsDefinition() : null;
    this.showSpinner = true;
    this.getAllRefreshJobs();
}

总的来说,我对 UI 开发知之甚少,但我了解事件,但我看不出是什么事件导致我的网格重置。在调试器中,事件队列被“清除”,这就是我的更改被撤消的时候。有什么想法吗?

【问题讨论】:

  • 你能分享一下stackblitz吗
  • 对不起,什么是堆栈闪电战?堆栈跟踪?
  • 嗯,就是这样,但是没有太多导入,我不知道如何使它工作。 angular-1rqp1n.stackblitz.io
  • 我开始看到问题了。 html 中的data-table 是我们在整个应用程序中使用的通用组件。它有自己的gridReady 事件。如何禁止触发该事件?

标签: angular typescript ag-grid


【解决方案1】:

在尝试了我能找到的一切来阻止事件传播(都没有奏效)之后,我终于想出了这个 kluge。我在网格modifyColumnState 上设置了一个属性,并且在data-grid 的组件ts 中,如果该属性设置为false,我告诉它不要做它的事情。希望其他有问题的人清楚。

   <data-table *ngIf="portfolioData"
                [setData]="portfolioData"
                [columnDefinition]="columnsDefinition"
                [selectable]="selectable"
                [highlight]="highlight"
                (onRowDoubleClick)="onRowDoubleClick($event)"
                [showSearchBar]="false"
                (onCellClick) = "onCellClick($event)"
                (onDataGridReady)="onGridReady($event)"
                [modifyColumnState] = "false"
    >
    </data-table>

【讨论】:

    猜你喜欢
    • 2018-01-30
    • 2019-03-02
    • 2020-08-19
    • 2017-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-10
    • 2019-12-26
    相关资源
    最近更新 更多