在 Observable 订阅上刷新 ag-grid
Refresh ag-grid on Observable subscribe
我正在努力刷新 ag-grid 以订阅 observable。
我有以下一段代码,效果很好。
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)
);
但是它在网格中没有显示任何东西。有人可以帮忙吗?
gridOptions.colDefs 和 gridOptions.rowData 是 "read once" 属性 - 它们在 Grid 初始化时读取,不会再次查看。
要对行或列进行动态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 - 上面的方法将为您完成。
我正在努力刷新 ag-grid 以订阅 observable。
我有以下一段代码,效果很好。
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)
);
但是它在网格中没有显示任何东西。有人可以帮忙吗?
gridOptions.colDefs 和 gridOptions.rowData 是 "read once" 属性 - 它们在 Grid 初始化时读取,不会再次查看。
要对行或列进行动态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 - 上面的方法将为您完成。