如何在任何情况下重新初始化农业电网?

时间:2019-04-02 08:01:44

标签: angular ag-grid

我已经通过单击我想要将enableRtl属性设置为true的按钮创建了一个ag-grid组件。

总之,我添加了一个组件,例如-

<ag-grid-angular #agGrid [floatingFilter]="true" 
      [enableRtl]="isArabic" (gridReady)="onGridReady($event)" 
      [(enableRtl)]="enableRtl" 
      [rowSelection]="rowSelection"
      [defaultColDef]="columnConfig" [rowData]="data" 
      [columnDefs]="columns"                   
      [gridOptions]="gridOptions"
></ag-grid-angular>

现在,我想基于click事件更改enableRtl。

在这里,enableRtl是组件的公共变量。

但是,它不反映RTL。

我已经在Stackblitz中添加了方案-

https://stackblitz.com/edit/angular-ag-grid-col-span-and-col-group-tsso85

2 个答案:

答案 0 :(得分:0)

这需要重新加载gridOptions,atm ag-grid无法动态重新加载键设置,更多详细信息here

答案 1 :(得分:0)

有一种方法可以实现这一目标。

ngIf元素级别为ag-grid-angular设置一个标志,并有条件地在事件处理程序中切换它。

<ag-grid-angular *ngIf="showGrid"
     class="ag-theme-material"
     [rowData]="rowData"
     [columnDefs]="columnDefs | async"
     [gridOptions]="gridOptions"
     [enableRtl]="lang"
>
</ag-grid-angular>

这样,将使用更新的标志重新初始化网格。

  

请记住,在重新初始化网格时,这里涉及性能成本。如果您认为影响微不足道,则取决于您,这是为您提供的解决方案。

看看更新后的Stackblitz: ag-grid : RTL <-> LTR