我正在努力在订阅可观察量时刷新ag-grid。
我有以下一段效果很好的代码。
this.marketConfigs = this._regionProductConfigService.getMarketConfig();
this.gridOptions.columnDefs = this.createColumnDefs();
this.gridOptions.rowData = this.marketConfigs;
但是因为我试图在ag-grid的列中放下一个下拉列表,所以我希望在接收数据后创建列配置。所以我将代码更改为以下内容:
this._refDataService.getAllCurrencies().subscribe(
(data: ICurrency[]) => {
this.financingCurrencies = data;
this.marketConfigs = this._regionProductConfigService.getMarketConfig();
this.gridOptions.columnDefs = this.createColumnDefs();
this.gridOptions.rowData = this.marketConfigs;
this.gridOptions.enableColResize = true;
this.gridOptions.api.refreshView();
},
err => console.log(err)
);
但它并没有在网格中显示任何东西。有人可以帮忙吗?
答案 0 :(得分:0)
gridOptions.colDefs和gridOptions.rowData是“一次读取”属性 - 它们是在网格初始化时读取的,而不是再次查看。
要对行或列进行动态的post-init设置,您需要使用API。
更改
this.gridOptions.columnDefs = this.createColumnDefs();
this.gridOptions.rowData = this.marketConfigs;
对此:
this.gridOptions.api.setColumnDefs(this.createColumnDefs());
this.gridOptions.setRowData(this.marketConfigs);
它应该按预期工作。请注意,如果按照上述方法使用API,则无需调用refreshView - 上述方法将为您完成。